Cod sursa(job #299243)

Utilizator andreivFMI - vacaroiu andrei andreiv Data 6 aprilie 2009 17:23:23
Problema Economie Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
int main()
{long int moneda[1006],max,nr=0,j,q,i;
 int n,v[1006];
 char ok[50006];


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

scanf("%d",&n);max=0;memset(ok,0,sizeof(ok));
for (i=1;i<=n;i++) 
{ scanf("%d",&v[i]);/*if (!ok[j]) {nr++;v[nr]=j;*/if (v[i]>max) max=v[i]; ok[v[i]]=1;}
//n=nr;nr=0;//am facut citirea eliminand elementele care se repeta
sort(v+1,v+n+1);
/*for (i=1;i<=n-1;i++) 
	if (ok[v[i]]==1)
	{nr++;moneda[nr]=v[i]; 
	 for (j=v[i];j<=max;j++) 
		if ((ok[j-v[i]]==-1)	|| (ok[j-v[i]]==1)) 
			[j]+q*v[i]]=-1;
	}*/
for (i=1;i<=n;i++)
{
for (j=v[i];j<=max;j++)
if (ok[j-v[i]]!=0)
   ok[j]++;
if (ok[v[i]]==1)
{
nr++;
moneda[nr]=v[i];}

}
	

printf("%ld\n",nr);
for (i=1;i<=nr;i++) printf("%ld\n",moneda[i]);
return 0;}