Cod sursa(job #2213324)

Utilizator alex_benescuAlex Ben alex_benescu Data 16 iunie 2018 11:22:54
Problema Transport Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>
#define INF 16001
int nrtrans(int v[], int n, int c){
  int i, nrt=0, cc=0;
  for(i=0; i<n; i++){
    if(v[i]>c)
      return INF;
    if(v[i]>cc){
      nrt++;
      cc=c;
    }
    cc-=v[i];
  }
  return nrt;
}
int v[16001];
int main(){
    FILE *fin, *fout;
    int n, t, i, r=0, pas=1<<27;
    fin=fopen("transport.in", "r");
    fscanf(fin, "%d%d", &n, &t);
    for(i=0; i<n; i++)
      fscanf(fin, "%d", &v[i]);
    fclose(fin);
    while(pas!=0){
      if(nrtrans(v, n, r+pas)>t)
        r+=pas;
      pas/=2;
    }
    r++;
    fout=fopen("transport.out", "w");
    fprintf(fout, "%d", r);
    fclose(fout);
    return 0;
}