Cod sursa(job #291538)

Utilizator ConsstantinTabacu Raul Consstantin Data 29 martie 2009 23:09:46
Problema Economie Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 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;}