Submission #72830020
Source Code Expand
Copy
#include <stdio.h>#include <stdlib.h>#define INF 1010101010int n, m;int k[160];int x[160][12], d[160][12];int memo[160][12][160];int calc(int row, int col, int left) {int ans = INF;int i, delta;if (row > n) return 0;if (memo[row][col][left]) return ~memo[row][col][left];for (delta = 1; delta <= 2; delta++) {int next_left = left - (delta != 1);if (next_left >= 0) {for (i = 0; i < k[row + delta]; i++) {int candidate = calc(row + delta, i, next_left);
#include <stdio.h>
#include <stdlib.h>
#define INF 1010101010
int n, m;
int k[160];
int x[160][12], d[160][12];
int memo[160][12][160];
int calc(int row, int col, int left) {
int ans = INF;
int i, delta;
if (row > n) return 0;
if (memo[row][col][left]) return ~memo[row][col][left];
for (delta = 1; delta <= 2; delta++) {
int next_left = left - (delta != 1);
if (next_left >= 0) {
for (i = 0; i < k[row + delta]; i++) {
int candidate = calc(row + delta, i, next_left);
if (1 <= row && row + delta <= n) {
candidate += (d[row][col] + d[row + delta][i]) * abs(x[row][col] - x[row + delta][i]);
}
if (candidate < ans) ans = candidate;
}
}
}
return ~(memo[row][col][left] = ~ans);
}
int main(void) {
int i;
if (scanf("%d%d", &n, &m) != 2) return 1;
for (i = 1; i <= n; i++) {
int j;
if (scanf("%d", &k[i]) != 1) return 1;
for (j = 0; j < k[i]; j++) {
if (scanf("%d%d", &x[i][j], &d[i][j]) != 2) return 1;
}
}
k[0] = 1;
k[n + 1] = 1;
k[n + 2] = 1;
printf("%d\n", calc(0, 0, m));
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - ぴょんぴょん川渡り |
| User | mikecat |
| Language | C23 (GCC 14.2.0) |
| Score | 20 |
| Code Size | 1098 Byte |
| Status | AC |
| Exec Time | 6 ms |
| Memory | 2816 KiB |
Judge Result
| Set Name | set01 | set02 | set03 | set04 | set05 | set06 | set07 | set08 | set09 | set10 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | ||||||||||||||||||||
| Status |
|
|
|
|
|
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| set06 | data6 |
| set07 | data7 |
| set08 | data8 |
| set09 | data9 |
| set10 | data10 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| data1 | AC | 1 ms | 1760 KiB |
| data10 | AC | 6 ms | 2736 KiB |
| data2 | AC | 0 ms | 1824 KiB |
| data3 | AC | 1 ms | 1840 KiB |
| data4 | AC | 1 ms | 2296 KiB |
| data5 | AC | 1 ms | 2816 KiB |
| data6 | AC | 3 ms | 2392 KiB |
| data7 | AC | 5 ms | 2784 KiB |
| data8 | AC | 3 ms | 2432 KiB |
| data9 | AC | 3 ms | 2816 KiB |