Cod sursa(job #291529)

Utilizator ConsstantinTabacu Raul Consstantin Data 29 martie 2009 23:03:24
Problema Economie Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 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;}    
        }    
for(i=1;i<=n;i++)
         {if(!viz[v[i]])    
                   viz[v[i]]=2;
                   for(j=1;j<=(max1-v[i]+1);j++)  
                           if(viz[j]>0)
                                  viz[j+v[i]]=1;    
                  }    
for(i=1;i<=n;i++)
        if(viz[v[i]]==2)
                sol[++k]=v[i];
   fprintf(g,"%d\n",k);    
   for(i=1;i<=k;i++)    
           fprintf(g,"%d\n",sol[i]);    
               
   fclose(f);    
   fclose(g);    
   return 0;}