답안 #209377

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
209377 2020-03-14T03:20:36 Z DystoriaX Journey (NOI18_journey) C++14
20 / 100
15 ms 16024 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, idx = -1;
        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);

            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:20:21: warning: unused variable 'idx' [-Wunused-variable]
         int nxt, t, idx = -1;
                     ^~~
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);
             ~~~~~^~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 15 ms 15992 KB Output is correct
2 Correct 15 ms 15992 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 15 ms 16024 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 15 ms 15992 KB Output is correct
2 Correct 15 ms 15992 KB Output is correct
3 Incorrect 15 ms 16024 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 15 ms 15992 KB Output is correct
2 Correct 15 ms 15992 KB Output is correct
3 Incorrect 15 ms 16024 KB Output isn't correct
4 Halted 0 ms 0 KB -