Cod sursa(job #1375835)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 5 martie 2015 14:39:03
Problema Garaj Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <algorithm>
#include <limits.h>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
struct ga{
    int x,y;}v[100001];
int n,i,sol,st,dr,d[100001],S,nr;
long long mij,s;
int main()
{
   f>>n>>S;
   for(i=1;i<=n;i++){
        f>>v[i].x>>v[i].y;
        v[i].y=v[i].y*2;}
st=1;dr=2000000000;
    while(st<=dr){
        mij=(st+dr)/2;
        s=0;
            for(i=1;i<=n;i++)
                s+=v[i].x*(mij/v[i].y);
            if(s>=S)
            {
                dr=mij-1;

                    sol=mij;
            }
                else
                st=mij+1;

                }
        g<<sol<<" ";
for(i=1;i<=n;i++)
        d[i]=v[i].x*(sol/v[i].y);
    sort(d+1,d+n+1);
    s=0;
for(i=n;i>=1;i--){
    s+=d[i];
    nr++;
    if(s>=S)
        {
            g<<nr;
            break;
        }}
    return 0;
}