Pagini recente » Cod sursa (job #2699527) | Cod sursa (job #2926984) | Cod sursa (job #219993) | Cod sursa (job #1813924) | Cod sursa (job #3225456)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int t[100005];
int c[100005];
int main()
{
ifstream fin("garaj.in");
ofstream fout("garaj.out");
long long int N,M,C,T,st,i,dr,mid,sol,cont;
fin>>N>>M;
for(i=1;i<=N;i++)
{
fin>>c[i]>>t[i];
t[i]*=2;
}
st=1;
dr=1e16;
while(st<=dr)
{
cont=0;
mid=(st+dr)/2;
for(i=1;i<=N;i++)
{
cont+=c[i]*(mid/t[i]);
}
if(cont<M)
{
st=mid+1;
}
else
{
sol=mid;
dr=mid-1;
}
}
fout<<sol<<' ';///Avem timpul
cont=0;
for(i=1;i<=N;i++)
{
c[i]*=(sol/t[i]);
}
sort(c+1,c+N+1);
for(i=N;i>=0;i--)
{
cont+=c[i];
if(cont>=M)
{
fout<<N-i+1;
return 0;
}
}
return 0;
}