Cod sursa(job #253844)

Utilizator RoflmaoPatru Ovidiu Roflmao Data 6 februarie 2009 12:53:39
Problema Caramizi Scor 20
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 0.94 kb
#include<iostream.h>
#include<fstream.h>
int main()
{
  int n,m,c[12000],x[12000],z,k,temp,i,j,l,count;
  long int tot,sum,sumprim;
  fstream f,g;
  f.open("caramizi.in",ios::in);
  g.open("caramizi.out",ios::out);
  f>>n>>m;
  tot=0;
  for(i=1;i<=n;i++)
  {
    f>>c[i];
    tot+=c[i];
  }
  for(i=1;i<=n-1;i++)
    for(j=i+1;j<=n;j++)
      if(c[i]<c[j])
      {
	temp=c[j];
	c[j]=c[i];
	c[i]=temp;
      }
  for(k=1;k<=m;k++)
  {
    f>>l;
    sum=0;
    for(z=n;z*l>=sum;z--)
    {
      for(i=1;i<=n;i++)
	x[i]=c[i];
      count=1;
      sumprim=0;
      while(x[z]>0&&count<=l)
      {
	count++;
	for(i=1;i<=z;i++)
	{
	  x[i]--;
	  sumprim++;
	}
	if(sumprim>sum)
	  sum=sumprim;
	for(i=1;i<=n-1;i++)
	  for(j=i+1;j<=n;j++)
	    if(x[i]<x[j])
	    {
	      temp=x[j];
	      x[j]=x[i];
	      x[i]=temp;
	    }
      }
    }
    g<<sum<<endl;
  }
  f.close();
  g.close();
  return 0;
}