Cod sursa(job #287974)

Utilizator stefynr8Space Monkey stefynr8 Data 25 martie 2009 13:44:31
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>

int n,i,j,ok,k,v[100],t[100],max;

int main()
{
 freopen("economie.in","r",stdin);
 freopen("economie.out","w",stdout);

 scanf("%d", &n);
 for(i=1;i<=n;i++)
	{
	scanf("%d", &v[i]);
	if(v[i]>max) max=v[i];
	}

 k=n;
 do
 {
  ok=1;
  for(i=1;i<k;i++)
     if(v[i]<v[i+1]){
		     ok=0;
		     v[0]=v[i];
		     v[i]=v[i+1];
		     v[i+1]=v[i];
		     }
  k--;

  }while(ok);


 for(i=1;i<=n && ok;i++)
    {
    ok=1;
    if(v[i]==i && t[i]==0){
			   t[i]=2;
			   k++;
			   }

    for(j=i;j<=max;j++)
	if(t[j-v[i]]!=0){
			 t[j]=1;
			 ok=0;
			}
    }

 printf("%d\n", k);
 for(i=1;i<=max;i++)
    if(t[i]==2) printf("%d ", t[i]);



return 0;
}