Cod sursa(job #124670)

Utilizator katakunaCazacu Alexandru katakuna Data 19 ianuarie 2008 18:47:39
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>

int k,c,b,ok,i,j,n,v[1001];
char t[50001];

int main(){

FILE *f=fopen("economie.in","r");
fscanf(f,"%d",&n);

  for(i=1;i<=n;i++){
  fscanf(f,"%d",&v[i]);

  }
fclose(f);

ok=1;
 while(ok){
 ok=0;

  for(i=1;i<n;i++){
   if(v[i]>v[i+1]){
   ok=v[i];
   v[i]=v[i+1];
   v[i]=ok;
   ok=1;
   }
  }

 }

c=v[n];
 for(i=1;i<=n;i++){
  if(t[v[i]]==0){
  k++;v[k]=v[i];
  b=v[i];

    for(j=v[1];j<=c;j++){
     if(t[j]==1&&t[j+b]==0){
     t[j+b]=1;}
    if(t[j]+b>c)break;
    }

    for(j=b;j<=c;j+=b){
    if(t[j]==1)t[j]=1;
    }
  }
 }

FILE *g=fopen("economie.out","w");
fprintf(g,"%d\n",k);
  for(i=1;i<=k;i++){
  fprintf(g,"%d ",v[i]);
  }
fclose(g);

return 0;
}