# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
200421 | 2020-02-06T19:46:32 Z | wilwxk | Journey (NOI18_journey) | C++14 | 5 ms | 632 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 1e4+5; const int MAXM = 405; const ll MOD = 500000001LL; ll dp[MAXN][MAXM]; vector<pair<int, int> > g[MAXN]; int n, m, x; int main() { scanf("%d %d %d", &n, &m, &x); for(int i = 0; i < n-1; i ++) { for(int j = 0; j < x; j++) { int a, b; scanf("%d %d", &a, &b); g[a].push_back({i, b}); } } dp[0][0] = 1; for(int i = 1; i < n; i++) { for(int j = 0; j < m; j++) { for(auto edge : g[i]) { int k = j-edge.second; if(k < 0) continue; dp[i][j] += dp[edge.first][k]; if(dp[i][j] > MOD) break; } // printf("%d %d >> %lld\n", i, j, dp[i][j]); } for(int j = 1; j < m; j++) dp[i][j] += dp[i][j-1], dp[i][j] = min(dp[i][j], MOD+10); } for(int i = 0; i < m; i++) printf("%lld ", min(dp[n-1][i], MOD)); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 632 KB | Output is correct |
2 | Correct | 5 ms | 504 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 5 ms | 632 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 632 KB | Output is correct |
2 | Correct | 5 ms | 504 KB | Output is correct |
3 | Incorrect | 5 ms | 632 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 632 KB | Output is correct |
2 | Correct | 5 ms | 504 KB | Output is correct |
3 | Incorrect | 5 ms | 632 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |