Pagini recente » Cod sursa (job #602362) | Cod sursa (job #800216) | Cod sursa (job #678572) | Cod sursa (job #1113605) | Cod sursa (job #3225333)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("garaj.in");
ofstream cout("garaj.out");
#define ll long long
#define nmax 100000
pair<int, int> camion[nmax+1];
int n, sticnt;
int main()
{
cin.tie(0);
ios_base::sync_with_stdio(0);
cin>>n>>sticnt;
for(int i=1; i<=n; i++)
cin>>camion[i].first>>camion[i].second;
ll st=0, dr=1LL*sticnt*1000;
while(st<=dr)
{
ll mij=(st+dr)/2;
ll stiduse=0;
for(int i=1; i<=n && stiduse<sticnt; i++)
stiduse+=mij/(2*camion[i].second)*camion[i].first;
if(stiduse<sticnt)
st=mij+1;
else
dr=mij-1;
}
for(int i=1; i<=n; i++)
camion[i].first=st/(2*camion[i].second)*camion[i].first;
sort(camion+1, camion+n+1, greater<pair<int, int>>());
int cnt=0, sum=0;
for(int i=1; i<=n && sum<=sticnt; i++)
{
sum+=camion[i].first;
cnt++;
}
cout<<st<<' '<<cnt;
}