Submission #68279164
Source Code Expand
Copy
#include <stdio.h>#define INF 9999char S[128];int memo[128][128][128];int calc(int pos, int kakko_cnt, int cursor_pos) {int ans = INF, candidate;if (kakko_cnt < 0) return INF;if (S[pos] == '\0') return kakko_cnt == 0 ? 0 : INF;if (memo[pos][kakko_cnt][cursor_pos]) return ~memo[pos][kakko_cnt][cursor_pos];/* 書き換えない */candidate = calc(pos + 1, kakko_cnt + (S[pos] == '(' ? 1 : -1), cursor_pos);if (ans > candidate) ans = candidate;/* 書き換える */candidate = calc(pos + 1, kakko_cnt + (S[pos] == '(' ? -1 : 1), pos) + (pos - cursor_pos) + 1;if (ans > candidate) ans = candidate;
#include <stdio.h>
#define INF 9999
char S[128];
int memo[128][128][128];
int calc(int pos, int kakko_cnt, int cursor_pos) {
int ans = INF, candidate;
if (kakko_cnt < 0) return INF;
if (S[pos] == '\0') return kakko_cnt == 0 ? 0 : INF;
if (memo[pos][kakko_cnt][cursor_pos]) return ~memo[pos][kakko_cnt][cursor_pos];
/* 書き換えない */
candidate = calc(pos + 1, kakko_cnt + (S[pos] == '(' ? 1 : -1), cursor_pos);
if (ans > candidate) ans = candidate;
/* 書き換える */
candidate = calc(pos + 1, kakko_cnt + (S[pos] == '(' ? -1 : 1), pos) + (pos - cursor_pos) + 1;
if (ans > candidate) ans = candidate;
return ~(memo[pos][kakko_cnt][cursor_pos] = ~ans);
}
int main(void) {
if (scanf("%127s", S) != 1) return 1;
printf("%d\n", calc(0, 0, 0));
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - 天下一魔力発電 |
| User | mikecat |
| Language | C (gcc 12.2.0) |
| Score | 400 |
| Code Size | 811 Byte |
| Status | AC |
| Exec Time | 3 ms |
| Memory | 4452 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 400 / 400 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 01_sample_01, 01_sample_02, 01_sample_03, 02_manual_01, 02_manual_02, 02_manual_03, 10_random_00, 10_random_01, 10_random_02, 10_random_03, 10_random_04, 10_random_05, 10_random_06, 10_random_07, 10_random_08, 10_random_09, 10_random_10, 10_random_11, 10_random_12, 10_random_13, 10_random_14, 10_random_15, 10_random_16, 10_random_17, 10_random_18, 10_random_19, 20_max_00, 20_max_01, 20_max_02, 20_max_03, 20_max_04, 20_max_05 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01_sample_01 | AC | 1 ms | 1776 KiB |
| 01_sample_02 | AC | 0 ms | 1576 KiB |
| 01_sample_03 | AC | 0 ms | 1608 KiB |
| 02_manual_01 | AC | 0 ms | 1728 KiB |
| 02_manual_02 | AC | 0 ms | 1608 KiB |
| 02_manual_03 | AC | 0 ms | 1632 KiB |
| 10_random_00 | AC | 1 ms | 2108 KiB |
| 10_random_01 | AC | 0 ms | 1704 KiB |
| 10_random_02 | AC | 1 ms | 2024 KiB |
| 10_random_03 | AC | 1 ms | 2936 KiB |
| 10_random_04 | AC | 0 ms | 1624 KiB |
| 10_random_05 | AC | 0 ms | 1868 KiB |
| 10_random_06 | AC | 1 ms | 2184 KiB |
| 10_random_07 | AC | 2 ms | 4148 KiB |
| 10_random_08 | AC | 1 ms | 2664 KiB |
| 10_random_09 | AC | 0 ms | 1812 KiB |
| 10_random_10 | AC | 1 ms | 1716 KiB |
| 10_random_11 | AC | 0 ms | 1768 KiB |
| 10_random_12 | AC | 2 ms | 3416 KiB |
| 10_random_13 | AC | 2 ms | 3540 KiB |
| 10_random_14 | AC | 0 ms | 1696 KiB |
| 10_random_15 | AC | 0 ms | 1904 KiB |
| 10_random_16 | AC | 2 ms | 3956 KiB |
| 10_random_17 | AC | 2 ms | 3676 KiB |
| 10_random_18 | AC | 2 ms | 3900 KiB |
| 10_random_19 | AC | 2 ms | 3928 KiB |
| 20_max_00 | AC | 3 ms | 4424 KiB |
| 20_max_01 | AC | 2 ms | 4452 KiB |
| 20_max_02 | AC | 2 ms | 4448 KiB |
| 20_max_03 | AC | 2 ms | 4264 KiB |
| 20_max_04 | AC | 3 ms | 4288 KiB |
| 20_max_05 | AC | 3 ms | 4448 KiB |