Pagini recente » Istoria paginii runda/simulare-cartita-37 | Istoria paginii runda/27-03-2017_todo/clasament | Cod sursa (job #336739) | Istoria paginii runda/rudna_2_star/clasament | Cod sursa (job #247725)
Cod sursa(job #247725)
#include<stdio.h>
FILE *fin=fopen("economie.in","r"),
*fout=fopen("economie.out","w");
int N,M,V[1002],A[4002];
char s[50000];
void swap(int x,int y){
int aux;
aux=A[x];A[x]=A[y];A[y]=aux;
}
void colorare(int x){
s[x]=1;
for(int i=x;i+x<=A[N];i++)
if(s[i]==1)
s[i+x]=1;
}
int main(){
fscanf(fin,"%d",&N);
for(int i=1;i<=N;i++)
fscanf(fin,"%d",&A[i]);
for(int i=1;i<N;i++)
for(int j=i+1;j<=N;j++)
if(A[j]<A[i])
swap(j,i);
for(int i=1;i<=N;i++)
if(s[A[i]]==0){
V[++M]=A[i];
colorare(A[i]);
}
fprintf(fout,"%d\n",M);
for(int i=1;i<=M;i++)
fprintf(fout,"%d\n",V[i]);
fclose(fin);
fclose(fout);
return 0;
}