Pagini recente » Cod sursa (job #3180733) | Cod sursa (job #559700) | Cod sursa (job #1885772) | Cod sursa (job #1188314) | Cod sursa (job #1573178)
# include <cstdio>
# include <algorithm>
# define DIM 100010
using namespace std;
FILE *fin = fopen("garaj.in", "r");
FILE *fout = fopen("garaj.out", "w");
long long s,t[DIM],c[DIM],i,n,m,st,dr,mij,trans[DIM],k,nr;
long long maxtrans(int r){
long long s=0;
for(int i=1;i<=n;i++){
s+=(r/t[i])*c[i];
}
return s;
}
int main () {
fscanf(fin, "%lld%lld", &n, &m);
for(i=1;i<=n;i++){
fscanf(fin, "%lld%lld", &c[i], &t[i]);
t[i]*=2;
}
st=1;
dr=(m/c[1] + 1)*t[1];
while(st<=dr){
mij=(st+dr)/2;
if(maxtrans(mij)>=m)
dr=mij-1;
else
st=mij+1;
}
//fout<<st<<" ";
for(i=1;i<=n;i++){
trans[i]=(st/t[i])*c[i];
}
sort(trans+1,trans+n+1);
k=n;
s = 0;
while(s<m){
s += trans[k];
k--;
nr++;
}
fprintf(fout,"%lld %lld\n", st, nr);
return 0;
}