Pagini recente » Cod sursa (job #161834) | Cod sursa (job #707970) | Cod sursa (job #402480) | Cod sursa (job #1744866) | Cod sursa (job #1649692)
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int c[100000];
int t[100000];
int mod(int a, int b){
if(a>b)
return 1;
else
return 0;
}
int main()
{
FILE *fin, *fout;
int n,m,st,dr,mij,i,j,x;
fin=fopen("garaj.in","r");
fout=fopen("garaj.out","w");
fscanf(fin,"%d%d",&n,&m);
for(x=0;x<n;x++){
fscanf(fin,"%d%d",&i,&j);
c[x]=i;
t[x]=j;
}
st=1;
dr=1000000000;
while(st<dr){
mij=(st+dr)/2;
x=0;
for(i=0;i<n && x<m;i++){
x=x+1LL*c[i]*(mij/(t[i]*2));
}
if(x>=m)
dr=mij;
else
st=mij+1;
}
fprintf(fout,"%d ",st);
for(i=0;i<n;i++){
c[i]=c[i]*(st/(t[i]*2));
}
sort(c,c+n,mod);
i=0;
x=0;
while(x<m){
x+=c[i];
i++;
}
fprintf(fout,"%d",i);
fclose(fin);
fclose(fout);
return 0;
}