Cod sursa(job #1113683)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 20 februarie 2014 20:10:18
Problema Garaj Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<cstdio>
#include<algorithm>
using namespace std;
struct cam{
    int c;
    int t;
}v[101000];
int n,m,i,j,t,ok,nr,nmin;
long long mid,p,u;
FILE *f,*g;
int cmp(cam a,cam b){
    return a.c/a.t>b.c/b.t;
}
int verif(long long t){
    int i,c,x=m;
    for(i=1;i<=n;i++){
        c=t/(v[i].t*2)*v[i].c;
        x-=c;
        if(x<=0){
            nr=i;
            break;
        }
    }
    if(x<=0)
        return 1;
    return 0;
}
int main(){
    f=fopen("garaj.in","r");
    g=fopen("garaj.out","w");
    fscanf(f,"%d%d",&n,&m);
    for(i=1;i<=n;i++){
        fscanf(f,"%d%d",&v[i].c,&v[i].t);
    }
    sort(v+1,v+n+1,cmp);
    p=1;
    u=2*m;
    while(p<=u){
        mid=(p+u)/2;
        ok=verif(mid);
        if(ok==1){
            nmin=nr;
            u=mid-1;
        }
        else
            p=mid+1;
    }
    fprintf(g,"%lld %d",p,nmin);




    fclose(f);
    fclose(g);
    return 0;
}