Pagini recente » Cod sursa (job #1386692) | Cod sursa (job #2356724) | Cod sursa (job #252242) | Cod sursa (job #562085) | Cod sursa (job #1646646)
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAXN 100000
int cost[MAXN],timp[MAXN];
long long v[MAXN];
inline long long cauta(long long t,int n){
long long s=0;
int i;
for(i=n-1;i>=0;i--)
s=s+1LL*cost[i]*(t/(timp[i]*2));
return s;
}
int main(){
FILE*fi,*fout;
int n,i,m;
long long rez,pas,s;
fi=fopen("garaj.in" ,"r");
fout=fopen("garaj.out" ,"w");
fscanf(fi,"%d%d" ,&n,&m);
for(i=0;i<n;i++)
fscanf(fi,"%d%d" ,&cost[i],&timp[i]);
rez=0;
pas=1;
for(i=1;i<44;i++)
pas*=2;
for(;pas;pas/=2)
if(cauta(rez+pas,n)<m)
rez+=pas;
rez++;
fprintf(fout,"%lld " ,rez);
for(i=0;i<n;i++)
v[i]=1LL*cost[i]*(rez/(2*timp[i]));
sort(v,v+n);
s=0;
i=n-1;
while(s<m){
s=s+v[i];
i--;
}
fprintf(fout,"%d" ,n-i-1);
fclose(fi);
fclose(fout);
return 0;
}