Cod sursa(job #1649692)

Utilizator Alex.PAlexandru Pacurar Alex.P Data 11 martie 2016 14:39:21
Problema Garaj Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>

using namespace std;

int c[100000];
int t[100000];

int mod(int a, int b){
  if(a>b)
    return 1;
  else
    return 0;
}

int main()
{
    FILE *fin, *fout;
    int n,m,st,dr,mij,i,j,x;
    fin=fopen("garaj.in","r");
    fout=fopen("garaj.out","w");
    fscanf(fin,"%d%d",&n,&m);
    for(x=0;x<n;x++){
        fscanf(fin,"%d%d",&i,&j);
        c[x]=i;
        t[x]=j;
    }
    st=1;
    dr=1000000000;
    while(st<dr){
        mij=(st+dr)/2;
        x=0;
        for(i=0;i<n && x<m;i++){
            x=x+1LL*c[i]*(mij/(t[i]*2));
        }
        if(x>=m)
            dr=mij;
        else
            st=mij+1;
    }
    fprintf(fout,"%d ",st);
    for(i=0;i<n;i++){
        c[i]=c[i]*(st/(t[i]*2));
    }
    sort(c,c+n,mod);
    i=0;
    x=0;
    while(x<m){
        x+=c[i];
        i++;
    }
    fprintf(fout,"%d",i);
    fclose(fin);
    fclose(fout);
    return 0;
}