Processing math: 100%

3-й этап Республиканской олимпиады по информатике 2022-2023, 1й тур


Есеп B. Балмұздақтың бағасы

Ограничение по времени:
1 second
Ограничение по памяти:
256 megabytes

Сіз балмұздақ сатасыз. Балмұздақтың өзіндік құны k теңге. Ол дегеніміз, егер балмұздақты x теңгеден сатсаныз, онда әр балмұздақтан табатын табысыңыз xk теңге болады. n клиент бар. Әр клиент i үшін оның балмұздаққа si теңге құрта алатыны белгілі. Әр клиент қанша балмұздаққа ақшасы жетеді, соншама балмұздақ сатып алады. Өзіңіздің табысыңыз барынша көп болатындай балмұздақтын бағасын таңдаңыз.
Формат входного файла
Бірінші жолда екі бүтін n,k(1<=n<=2105, 0<=k<=106) — клиенттер саны және бір балмұздақтың өзіндің құны. Екінші жолда n бүтін сан s1,s2,,sn(1<=si<=106) беріледі.
Формат выходного файла
Ең көп қанша пайда алатыңызды шығарыңыз.
Примеры:
Вход
5 2
8 9 10 15 12
Ответ
30
Вход
3 20
15 10 20
Ответ
0
Замечание
Бірінші мысалда балмұздақтың бағасын 7 теңге қойған тиімдірек. Онда төртінші клиент 2 балмұздақ сатып алады, ал қалғандары бір бірден алады. Барлығы 6 балмұздақ сатылады. Әр балмұздақтан келетін табыс 5(72) теңге, онда барлығы 65=30 теңге пайда болады. ( Temirlan Satylkhanov )
посмотреть в олимпиаде

Комментарий/решение:

  0
3 месяца 9 дней назад #

как это решается

  0
3 месяца 9 дней назад #

//C.RONALDO IS G.O.A.T

//user91571@outlook.com

//A2010

#include <bits/stdc++.h>

#define sed s.erase(unique(s.begin(),s.end()),s.end());

#define ll long long

#define sem s.emplace("To",3)

#define fi first

#define se second

#define aufi auto it = arr.find("To")

#define auer auto it = arr.erase("To")

#define cous count(s.begin(),s.end(),'N')

#define ios ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#define ser s.erase(remove(s.begin(),s.end(),' '),s.end());

#define KOE vector<tuple<int,int,int>> v;

using namespace std;

using ld=long double;

const ll MOD=998244353;

const ll N=3e5+10;

const ll inf=1e18;

int d[N];

int f[N];

vector<int>g[N];

int used[N];

void dfs(int v) {

used[v]=1;

for(auto to:g[v]){

if(!used[to]){

dfs(to);

}

}

}

/*ll funct(ll a){

ll s=0;

while(a!=0){

s+=a%!;

a/=!;

}

return s;

}*/

int gcd(int a,int b) {

if(b==0) return a;

return gcd(b,a%b);

}

void solve() {

string english_alphabet="abcdefghijklmnopqrstuvwxyz";

ll a,b;

cin>>a>>b;

for(int i=0;i<a;i++){

cin>>d[i];

}

ll mn=*min_element(d,d+a);

ll mx=*max_element(d,d+a);

if(b>=mx) cout<<"0\n";

else{

ll mxi=0;

ll sum=0;

while(b<mn){

for(ll i=0;i<a;i++){

sum+=d[i]/mn;

}

mxi=max(mxi,sum*(mn-b));

mn--;

sum=0;

}

cout<<mxi<<'\n';

}

}

int main() {

ios

//freopen("dining.in", "r", stdin);

//freopen("dining.out", "w", stdout);

int tt=1;

//cin>>tt;

while(tt--) {

solve();

}

}

почему не правильно на 5 тесте

  0
3 месяца 9 дней назад #

кодты корсету/жасыру

C++
//C.RONALDO IS G.O.A.T

//user91571@outlook.com

//A2010

#include <bits/stdc++.h>

#define sed s.erase(unique(s.begin(),s.end()),s.end());

#define ll long long

#define sem s.emplace("To",3)

#define fi first

#define se second

#define aufi auto it = arr.find("To")

#define auer auto it = arr.erase("To")

#define cous count(s.begin(),s.end(),'N')

#define ios ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#define ser s.erase(remove(s.begin(),s.end(),' '),s.end());

#define KOE vector<tuple<int,int,int>> v;

using namespace std;

using ld=long double;

const ll MOD=998244353;

const ll N=3e5+10;

const ll inf=1e18;

int d[N];

int f[N];

vector<int>g[N];

int used[N];

void dfs(int v) {

used[v]=1;

for(auto to:g[v]){

if(!used[to]){

dfs(to);

}

}

}

/*ll funct(ll a){

ll s=0;

while(a!=0){

s+=a%!;

a/=!;

}

return s;

}*/

int gcd(int a,int b) {

if(b==0) return a;

return gcd(b,a%b);

}

void solve() {

string english_alphabet="abcdefghijklmnopqrstuvwxyz";

ll a,b;

cin>>a>>b;

for(int i=0;i<a;i++){

cin>>d[i];

}

ll mn=*min_element(d,d+a);

ll mx=*max_element(d,d+a);

if(b>=mx) cout<<"0\n";

else{

ll mxi=0;

ll sum=0;

while(b<mn){

for(ll i=0;i<a;i++){

sum+=d[i]/mn;

}

mxi=max(mxi,sum*(mn-b));

mn--;

sum=0;

}

cout<<mxi<<'\n';

}

}

int main() {

ios

//freopen("dining.in", "r", stdin);

//freopen("dining.out", "w", stdout);

int tt=1;

//cin>>tt;

while(tt--) {

solve();

}

}

  0
3 месяца 9 дней назад #

кодты корсету/жасыру

C++