답안 #554053

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
554053 2022-04-27T15:39:15 Z tht2005 Sightseeing in Kyoto (JOI22_kyoto) C++17
10 / 100
12 ms 12116 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
const LL INF = numeric_limits<LL>::max();

const int N = 1003;
int w, h, a[N], b[N], n, m, c[2 * N], d[2 * N];
LL f[N * 2][N * 2];

int main() {
    scanf("%d %d", &w, &h);
    for(int i = 1; i <= w; ++i) {
        scanf("%d", a + i);
    }
    n = 0;
    for(int i = 1; i <= w; ++i) {
        c[++n] = i;
        if(i != 1 && i != w) {
            while(n > 1) {
                if(a[c[n]] < a[c[n - 1]] || a[c[n]] < a[i + 1])
                    break;
                --n;
            }
        }
    }
    for(int i = 1; i <= h; ++i) {
        scanf("%d", b + i);
    }
    m = 0;
    for(int i = 1; i <= h; ++i) {
        d[++m] = i;
        if(i != 1 && i != h) {
            while(m > 1) {
                if(b[d[m]] < b[d[m - 1]] || b[d[m]] < b[i + 1])
                    break;
                --m;
            }
        }
    }
    for(int i = 1; i <= n; ++i) {
        for(int j = 1; j <= m; ++j) {
            f[i][j] = INF;
        }
    }
    f[1][1] = 0;
    for(int i = 1; i <= n; ++i) {
        for(int j = 1; j <= m; ++j) {
            if(i != 1) f[i][j] = min(f[i][j], f[i - 1][j] + (LL)b[d[j]] * (c[i] - c[i - 1]));
            if(j != 1) f[i][j] = min(f[i][j], f[i][j - 1] + (LL)a[c[i]] * (d[j] - d[j - 1]));
        }
    }
    printf("%lld", f[n][m]);
    return 0;
}

Compilation message

kyoto.cpp: In function 'int main()':
kyoto.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     scanf("%d %d", &w, &h);
      |     ~~~~~^~~~~~~~~~~~~~~~~
kyoto.cpp:15:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |         scanf("%d", a + i);
      |         ~~~~~^~~~~~~~~~~~~
kyoto.cpp:29:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |         scanf("%d", b + i);
      |         ~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 308 KB Output is correct
8 Correct 0 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 324 KB Output is correct
11 Correct 1 ms 448 KB Output is correct
12 Correct 1 ms 452 KB Output is correct
13 Correct 12 ms 12116 KB Output is correct
14 Correct 1 ms 452 KB Output is correct
15 Correct 1 ms 468 KB Output is correct
16 Correct 10 ms 12116 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 0 ms 312 KB Output is correct
19 Correct 0 ms 340 KB Output is correct
20 Correct 0 ms 340 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 1 ms 316 KB Output is correct
25 Correct 1 ms 340 KB Output is correct
26 Correct 0 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 312 KB Output is correct
3 Incorrect 3 ms 3924 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 0 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 308 KB Output is correct
8 Correct 0 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 324 KB Output is correct
11 Correct 1 ms 448 KB Output is correct
12 Correct 1 ms 452 KB Output is correct
13 Correct 12 ms 12116 KB Output is correct
14 Correct 1 ms 452 KB Output is correct
15 Correct 1 ms 468 KB Output is correct
16 Correct 10 ms 12116 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 0 ms 312 KB Output is correct
19 Correct 0 ms 340 KB Output is correct
20 Correct 0 ms 340 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 1 ms 316 KB Output is correct
25 Correct 1 ms 340 KB Output is correct
26 Correct 0 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
29 Correct 1 ms 340 KB Output is correct
30 Correct 1 ms 312 KB Output is correct
31 Incorrect 3 ms 3924 KB Output isn't correct
32 Halted 0 ms 0 KB -