Pagini recente » Cod sursa (job #807568) | Cod sursa (job #730070) | Cod sursa (job #1713525) | Cod sursa (job #2020749) | Cod sursa (job #2009941)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std ;
ifstream fin("economie.in") ;
ofstream fout("economie.out") ;
int n , a[1009] , sol[1009] , sum[50009] , nr ;
int main(){
sum[0] = 1 ;
fin >> n ;
int max = 0 ;
for(int i = 1 ; i <= n ; i ++){
fin >> a[i] ;
if(a[i] > max){
max = a[i] ;
}
}
sort(a + 1 , a + n + 1) ;
sol[++ nr] = a[1] ;
for(int i = a[1] ; i <= max ; i += a[1]){
sum[i] = 1 ;
}
for(int i = 2 ; i <= n ; i ++){
if(sum[a[i]] == 0){
sol[++ nr] = a[i] ;
for(int j = 0 ; j + a[i] <= max ; j ++){
if(sum[j] == 1){
sum[j + a[i]] = 1 ;
}
}
}
}
fout << nr << "\n" ;
for(int i = 1 ; i <= nr ; i ++){
fout << sol[i] << "\n" ;
}
fin.close() ;
fout.close() ;
return 0 ;
}