Cod sursa(job #255549)

Utilizator ConsstantinTabacu Raul Consstantin Data 9 februarie 2009 22:32:00
Problema Economie Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
 #include<stdio.h>
 #include<algorithm>
 using namespace std;
 int i,j,m,k,n,sol[1011],viz[50011],v[1011],p,max1;
 int main(){  
 FILE *f=fopen("economie.in","r");  
 FILE *g=fopen("economie.out","w");  
 fscanf(f,"%d",&n);  
 for(i=1;i<=n;i++)  
         {fscanf(f,"%d",&v[i]);  
         if(v[i]>max1)max1=v[i];
         if(v[i]==1)  
                 {fprintf(g,"%d\n%d",1,1);  
                         fclose(f);  
                         fclose(g);  
                         return 0;}  
      }  
sort(v+1,v+1+n);
 for(i=1;i<=n;i++)  
       {if(!viz[v[i]])  
                 {k++;  
                 sol[k]=v[i];viz[v[i]]=1;  
                 for(j=1;j<=(max1-v[i]+1);j++)
                         if(viz[j]||j%v[i]==0)  
                                 viz[j+v[i]]=1;  
                }  
          }  
 fprintf(g,"%d\n",k);  
 for(i=1;i<=k;i++)  
         fprintf(g,"%d\n",sol[i]);  
           
 fclose(f);  
 fclose(g);  
 return 0;}