Pagini recente » Cod sursa (job #1679206) | Cod sursa (job #1412829) | Cod sursa (job #2514717) | Cod sursa (job #2005473) | Cod sursa (job #203833)
Cod sursa(job #203833)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct camion {int c,t;} c[100100];
int s[100100],sol,nr,mij,i,u,p,n,k;
int trans(int x){
int R=0;
for(i=1;i<=n;i++)
R+=c[i].c * (x/(c[i].t*2));
return R;
}
int main(){
FILE *f=fopen("garaj.in","r");
FILE *g=fopen("garaj.out","w");
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++)
fscanf(f,"%d %d",&c[i].c,&c[i].t);
p=1;
u=k*c[1].t/c[1].c;
sol=u*2;
nr=1;
while(p<=u){
mij=(p+u)/2;
if(trans(mij)>=k){
sol=mij;
u=mij-1;
}
else
p=mij+1;
}
for(i=1;i<=n;i++)
s[i]+=c[i].c * (sol/(c[i].t*2));
sort(s+1,s+1+n);
int R=0;
nr=0;
for(i=n;i>=1;i--){
R+=s[i];
nr++;
if(R>=k)
break;
}
fprintf(g,"%d %d",sol,nr);
fclose(f);
fclose(g);
return 0;
}