Cod sursa(job #664226)

Utilizator danalex97Dan H Alexandru danalex97 Data 19 ianuarie 2012 20:23:01
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream f("economie.in");
ofstream g("economie.out");

int v[1005],q,i,n,t,j,k,A[1004],kz;
bool E1[50005],E2[50005];

int main() 
{
    f>>n;
    for(i=1;i<=n;i++) 
	{
        f>>v[i];
        q=max(q,v[i]);
    }
	sort(v+1,v+n+1);
    for(i=1;i<=n;i++) 
		if ( E2[v[i]]==0 ) 
		{
            for(j=v[i];j<=q;j+=v[i]) 
				if ( E1[j]==0 )
				{
					E2[j]=1;
					for(t=1;t<=q;t++) 
						if ( (E1[t]==1) && (t+j<=q) ) 
							E2[t+j]=1;
					for(t=1; t<=q; t++) 
						E1[t]=E2[t];
				}
            k++;
            A[k]=v[i];
        }
    g<<k<<'\n';
    for(i=1; i<=k; i++)
        g<<A[i]<<'\n';
    f.close();
    g.close();
    return 0;
}