Cod sursa(job #253667)

Utilizator katakunaCazacu Alexandru katakuna Data 6 februarie 2009 10:48:21
Problema Caramizi Scor 50
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 0.75 kb
#include<stdio.h>
#define NMAX 200011
#include<algorithm>
using namespace std;

int m,lmax,x,n,c[NMAX],l[NMAX],i,d[1000011];

int car(int X){
int i,rez=0;

   for(i=1; i<=n; i++)
   rez+=min(c[i],X);

rez/=X;
rez*=X;
return rez;
}

int main(){

   FILE *f=fopen("caramizi.in","r");
   FILE *g=fopen("caramizi.out","w");

   fscanf(f,"%d %d",&n,&m);
   for(i=1;i<=n;i++)
      fscanf(f,"%d",&c[i]);

   for(i=1;i<=m;i++){
      fscanf(f,"%d",&l[i]);
      if(l[i] > lmax)
      lmax = l[i];
   }


   d[1]=n;

   for(i=2; i<=lmax; i++){
      d[i]=d[i-1];
      x=car(i);
      if(d[i] < x)
         d[i] = x;
   }


   for(i=1; i<=m; i++)
      fprintf(g,"%d\n",d[l[i]]);

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