Cod sursa(job #1646321)

Utilizator tgm000Tudor Mocioi tgm000 Data 10 martie 2016 15:46:09
Problema Garaj Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct camion{int c,t;};
camion v[100001];
int vc[100001];
bool cmp(int a,int b){
    if(a>b)
        return true;
    else
        return false;
}
int main(){
    int n,m,l1,l2,i,s,k,mij;
    freopen("garaj.in","r",stdin);
    freopen("garaj.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++){
        scanf("%d%d",&v[i].c,&v[i].t);
    }
    l1=1;
    l2=1000000000;
    while(l1<=l2){
        mij=(l1+l2)/2;
        s=0;
        for(i=1;i<=n&&s<m;i++)
            s+=(mij/v[i].t)*v[i].c;
        if(s>=m){
            k=mij;
            l2=mij-1;
        }else
            l1=mij+1;
    }
    for(i=1;i<=n;i++)
        vc[i]=(k/v[i].t)*v[i].c;
    sort(vc+1,vc+n+1,cmp);
    s=0;
    i=1;
    while(s<m){
        s+=vc[i];
        i++;
    }
    printf("%d %d",2*k,i-1);
    return 0;
}