Submission #209386

# Submission time Handle Problem Language Result Execution time Memory
209386 2020-03-14T03:59:14 Z DystoriaX Journey (NOI18_journey) C++14
100 / 100
100 ms 16236 KB
#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;
        for(int j = 0; j < m; j++) dp[j + 1][i] = min(1LL * MAX, 1LL * 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++){
                if(j + t >= m) break;
 
                dp[j + t][nxt] = min(1LL * MAX, 1LL * dp[j + t][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

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:24: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 time Memory Grader output
1 Correct 14 ms 15992 KB Output is correct
2 Correct 14 ms 15992 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 14 ms 15992 KB Output is correct
2 Correct 15 ms 16040 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 14 ms 15992 KB Output is correct
2 Correct 14 ms 15992 KB Output is correct
3 Correct 14 ms 15992 KB Output is correct
4 Correct 15 ms 16040 KB Output is correct
5 Correct 16 ms 15992 KB Output is correct
6 Correct 15 ms 15992 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 14 ms 15992 KB Output is correct
2 Correct 14 ms 15992 KB Output is correct
3 Correct 14 ms 15992 KB Output is correct
4 Correct 15 ms 16040 KB Output is correct
5 Correct 16 ms 15992 KB Output is correct
6 Correct 15 ms 15992 KB Output is correct
7 Correct 69 ms 15992 KB Output is correct
8 Correct 68 ms 15992 KB Output is correct
9 Correct 31 ms 16032 KB Output is correct
10 Correct 100 ms 16236 KB Output is correct