Submission #209384

#TimeUsernameProblemLanguageResultExecution timeMemory
209384DystoriaXJourney (NOI18_journey)C++14
69 / 100
2100 ms16084 KiB
#include <bits/stdc++.h> using namespace std; int n, m, h; int dp[410][10010]; const int INF = 1e9; const int MAX = 5 * 1e8 + 1; int main(){ scanf("%d%d%d", &n, &m, &h); for(int i = 0; i <= 10000; i++) for(int j = 0; j <= 400; j++) dp[j][i] = 0; dp[0][0] = 1; for(int i = 0; i < n - 1; i++){ int nxt, t; // int idx = -1; // for(int j = 0; j < m; j++) dp[j + 1][i] = min(MAX, dp[j + 1][i] + dp[j][i]); for(int k = 0; k < h; k++){ scanf("%d%d", &nxt, &t); if(nxt <= i) continue; for(int j = 0; j <= m; j++){ for(int l = j + t; l <= m; l++) dp[l][nxt] = min(MAX, dp[l][nxt] + dp[j][i]); } } // for(int j = 0; j <= m; j++) // if(dp[j][i] != -1) idx = j; // if(idx == -1) continue; // for(int j = 0; j < h; j++){ // scanf("%d%d", &nxt, &t); // if(t + idx <= m){ // if(dp[t + idx][nxt] == -1) dp[t + idx][nxt] = 0; // dp[t + idx][nxt] = min(1LL * MAX, 1LL * dp[t + idx][nxt] + dp[idx][i]); // } // } // for(int j = idx; j < m; j++){ // dp[j + 1][i] = min(1LL * MAX, 1LL * dp[j + 1][i] + dp[j][i]); // } } for(int i = 0; i < m; i++){ if(i) printf(" "); printf("%d", max(dp[i][n - 1], 0)); } printf("\n"); return 0; }

Compilation message (stderr)

journey.cpp: In function 'int main()':
journey.cpp:11:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d", &n, &m, &h);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~
journey.cpp:26:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d%d", &nxt, &t);
             ~~~~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...