Cod sursa(job #253817)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 6 februarie 2009 12:40:13
Problema Caramizi Scor 5
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 0.81 kb
#include<stdio.h>
long n,m;
long long sum;
long v[200010];//v[200010];


void read()
{
freopen("caramizi.in","r",stdin);
freopen("caramizi.out","w",stdout);
scanf("%ld%ld",&n,&m);
long i,j;
for(i=1;i<=n;i++)
  {
  scanf("%ld",&v[i]);
  sum=sum+v[i];
  }
}


void rez()
{
long t,li,suma,scz,csum,max,i,j;
for(t=1;t<=m;t++)
  {
  scz=0;
  csum=sum;
  scanf("%ld",&li);
  max=0;
  suma=0;
  for(i=1;i<=n;i++)
    {
    suma=suma+v[i];
    if(v[i]>li)
      suma=suma-v[i]+li;
    }
  sum=suma;
  for(j=li;j>=1;j--)
    {
    csum=sum;
    csum=csum-scz;
    csum=csum-(csum%j);
    if(max<csum)
      max=csum;

    scz=0;
    for(i=1;i<=n;i++)
      if(v[i]>(j-1))
	{
	scz=scz+v[i]-j+1;
	}
    }
  printf("%ld\n",max);
  }
}


int main()
{
read();
rez();
return 0;
}