Cod sursa(job #1375784)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 5 martie 2015 14:27:01
Problema Garaj Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
struct ga{
    int x,y;}v[100001];
int n,i,s,sol,mij,st,dr,d[100001],S;
int main()
{
   f>>n>>S;
   for(i=1;i<=n;i++)
        f>>v[i].x>>v[i].y;
st=1;dr=20000000;
    while(st<=dr){
        mij=(st+dr)/2;
        s=0;
            for(i=1;i<=n;i++)
                s+=v[i].x*(mij/(v[i].y*2));
            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*2));
    sort(d+1,d+n+1);
    s=0;
for(i=n;i>=1;i--){
    s+=d[i];
    if(s>S)
        {
            g<<n-i+1;
            break;
        }}
    return 0;
}