Submission #333871

#TimeUsernameProblemLanguageResultExecution timeMemory
333871limabeansLabels (NOI20_labels)C++17
47 / 100
5 ms4332 KiB
#include <bits/stdc++.h> using namespace std; template<typename T> void out(T x) { cout << x << endl; exit(0); } #define watch(x) cout << (#x) << " is " << (x) << endl using ll = long long; const int maxn = 1e3+2; int n; int d[maxn]; int dp[maxn][maxn]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n; for (int i=1; i<=n-1; i++) { cin>>d[i]; } for (int i=1; i<=n; i++) { dp[1][i] = 1; } for (int i=2; i<=n; i++) { for (int j=1; j<=n; j++) { if (j-d[i-1]>=1 && j-d[i-1]<=n) { dp[i][j] = dp[i-1][j-d[i-1]]; } } } int last = -1; for (int j=1; j<=n; j++) { if (dp[n][j]) { if (~last) out(-1); last = j; } } if (last == -1) out(-1); vector<int> res; res.push_back(last); for (int i=n-1; i>=1; i--) { last -= d[i]; res.push_back(last); } reverse(res.begin(), res.end()); for (int i: res) cout<<i<<" "; cout<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...