buna

incerc sa fac problema cafea de pe pbinfo (#3739 / https://www.pbinfo.ro/probleme/3739/cafea) dar nu inteleg de ce imi da 20 de puncte


aici este codul

#include


using namespace std;

ifstream in("cafea.in");

ofstream out("cafea.out");


long long s,k;

int n;

float impq;


struct negustori

{

int grame;

float pret;

};

negustori v[100002];



long long conv(float k)

{

int a=k;

if(k > a)

return a+1;

else

return a;

}



int main()

{

in>>k>>s>>n;

for(int i=1; i<=n; i++)

{

in>>v[i].grame>>v[i].pret;

impq= (float) v[i].pret/v[i].grame;

v[i].pret=impq;

}




for(int i=2; i<=n; i++)

{

while(v[i].pret < v[i-1].pret )

{

float schimb1= v[i].pret;

int schimb2=v[i].grame;


v[i].pret=v[i-1].pret;

v[i-1].pret=schimb1;


v[i].grame=v[i-1].grame;

v[i-1].grame=schimb2;

}

}



for(int i=1; i<=n ; i++)

{

if( v[i].grame < k )

{

k=k-v[i].grame;

s=s- v[i].grame* v[i].pret;

}

else

{

s=s - conv( v[i].pret *k);

k=0;

break;

}

if(s <= 0)

{

break;

}

}


if(k!=0 || s<=0)

{

out<<0;

}

else

out<


return 0;

}



Multumesc anticipat