Cod sursa(job #277627)

Utilizator Cristy94Buleandra Cristian Cristy94 Data 11 martie 2009 20:14:38
Problema Economie Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream.h>   
ifstream f("economie.in");   
ofstream g("economie.out");   
unsigned int m[1001],n,i,x,k,nr,j,max,min;   
unsigned int p[50001],t[1001];
int main(){
f>>n;max=0;min=50001;
for(i=1;i<=n;i++){
    f>>m[i];p[m[i]]=2;;if(m[i]>max)max=m[i];if(m[i]<min)min=m[i];}
for(i=1;i<=n-1;i++)
  for(k=i+1;k<=n;k++)
    if(m[i]>m[k]){
      x=m[k];
      m[k]=m[i];
      m[i]=x;}
k=n;
nr=0;

for(i=1;i<=n&&k>0;i++)

  if(p[m[i]]==2){nr++;
	p[m[i]]=1;
	t[i]=1;
	k--;
    for(j=min;j<=max-m[i];j++)
	  if(j%m[i]==0){
		  if(p[j]==2)
		      k--;
	       p[j]=1;}
	else if(p[j]==1){
		 if(p[j+m[i]]==2)
		       k--;
		p[j+m[i]]=1;}
	if(p[max]==2)
	    if(max%m[i]==0){
	    k--;
	   p[max]=1;}

}

g<<nr<<'\n';
for(i=1;i<=n;i++)
  if(t[i]==1)
    g<<m[i]<<'\n';
return 0;
}