Submission #72925519
Source Code Expand
Copy
#include <stdio.h>int N, D;int price[400][3123];int price_rui[400][3123];int memo[400];int calc(int day) {int ans = -1;int i, j;if (day >= D) return 0;if (memo[day]) return ~memo[day];for (i = 0; i < N; i++) {int candidate;candidate = calc(day + 1) + price[day][i];if (ans < 0 || candidate < ans) ans = candidate;if (day + 1 < D) {candidate = calc(day + 2) + price[day][i] + price[day + 1][i] * 9 / 10;if (ans < 0 || candidate < ans) ans = candidate;
#include <stdio.h>
int N, D;
int price[400][3123];
int price_rui[400][3123];
int memo[400];
int calc(int day) {
int ans = -1;
int i, j;
if (day >= D) return 0;
if (memo[day]) return ~memo[day];
for (i = 0; i < N; i++) {
int candidate;
candidate = calc(day + 1) + price[day][i];
if (ans < 0 || candidate < ans) ans = candidate;
if (day + 1 < D) {
candidate = calc(day + 2) + price[day][i] + price[day + 1][i] * 9 / 10;
if (ans < 0 || candidate < ans) ans = candidate;
}
for (j = day + 2; j < D; j++) {
candidate = calc(j + 1);
candidate += price[day][i];
candidate += price[day + 1][i] * 9 / 10;
candidate += (price_rui[j][i] - price_rui[day + 1][i]) * 7 / 10;
if (ans < 0 || candidate < ans) ans = candidate;
}
}
return ~(memo[day] = ~ans);
}
int main(void) {
int i, j;
if (scanf("%d%d", &N, &D) != 2) return 1;
for (i = 0; i < D; i++) {
for (j = 0; j < N; j++) {
if (scanf("%d", &price[i][j]) != 1) return 1;
price_rui[i][j] = (i == 0 ? 0 : price_rui[i - 1][j]) + price[i][j];
}
}
printf("%d\n", calc(0));
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | nile - ナイルドットコム (Nile.Com) |
| User | mikecat |
| Language | C23 (GCC 14.2.0) |
| Score | 100 |
| Code Size | 1127 Byte |
| Status | AC |
| Exec Time | 680 ms |
| Memory | 10636 KiB |
Judge Result
| Set Name | Set01 | Set02 | Set03 | Set04 | Set05 | Set06 | Set07 | Set08 | Set09 | Set10 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 10 / 10 | 10 / 10 | 10 / 10 | 10 / 10 | 10 / 10 | 10 / 10 | 10 / 10 | 10 / 10 | 10 / 10 | 10 / 10 | ||||||||||||||||||||
| Status |
|
|
|
|
|
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| Set01 | 01 |
| Set02 | 02 |
| Set03 | 03 |
| Set04 | 04 |
| Set05 | 05 |
| Set06 | 06 |
| Set07 | 07 |
| Set08 | 08 |
| Set09 | 09 |
| Set10 | 10 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01 | AC | 0 ms | 1632 KiB |
| 02 | AC | 0 ms | 1632 KiB |
| 03 | AC | 1 ms | 2612 KiB |
| 04 | AC | 28 ms | 5260 KiB |
| 05 | AC | 26 ms | 4108 KiB |
| 06 | AC | 39 ms | 4148 KiB |
| 07 | AC | 680 ms | 10636 KiB |
| 08 | AC | 648 ms | 10560 KiB |
| 09 | AC | 636 ms | 10468 KiB |
| 10 | AC | 657 ms | 10540 KiB |