Cod sursa(job #1649939)

Utilizator ipus1Stefan Enescu ipus1 Data 11 martie 2016 15:50:41
Problema Garaj Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct aa{int x,y;};
aa v[100001];
int q;
bool sortare(aa a, aa b)
    {if(a.x*q/a.y>b.x*q/b.y)
        return 1;
    return 0;
    }
int main ()
{freopen ("garaj.in","r",stdin);
freopen ("garaj.out","w",stdout);
int n,m,i,x,c1,c2,k;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
    scanf("%d%d",&v[i].x,&v[i].y);
c1=1;
c2=m;
while(c1<=c2)
    {x=(c1+c2)/2;
    k=0;
    for(i=1;i<=n;i++)
        k+=v[i].x*(x/(2*v[i].y));
    if(k>=m)
        {q=x;
        c2=x-1;
        }
    else
        c1=x+1;
    }
printf("%d ",q);
sort(v+1,v+n+1,sortare);
k=0;
for(i=1;i<=n;i++)
    {k+=v[i].x*q/(2*v[i].y);
    if(k>=m)
        {printf("%d",i);
        return 0;
        }
    }
return 0;
}