Cod sursa(job #2456587)
| Utilizator | Data | 14 septembrie 2019 19:02:33 | |
|---|---|---|---|
| Problema | Economie | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("economie.in");
ofstream g("economie.out");
const int NMAX = 1005;
int n,v[NMAX], dp[NMAX], used[NMAX], MAX, ans;
int main(){
int i,j;
f >> n;
for(i = 1 ; i <= n ; i++){
f >> v[i];
MAX = max(MAX, v[i]);
}
for(i = 1 ; i <= n ; i++)
if(!dp[v[i]]){
used[i] = 1;
ans++;
dp[v[i]] = 1;
for(j = i ; j <= MAX ; j++)
if(dp[j])
dp[j + v[i]] = 1;
}
g << ans << "\n";
for(i = 1 ; i <= n ; i++)
if(used[i])
g << i << "\n";
return 0;
}
