結果
| 問題 |
No.22 括弧の対応
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-12-28 00:57:45 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 935 bytes |
| コンパイル時間 | 190 ms |
| コンパイル使用メモリ | 30,168 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-20 07:46:42 |
| 合計ジャッジ時間 | 948 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 |
ソースコード
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int N = 0;
int K = 0;
char S[10003];
int brack[10000] = {0};
int up = 0;
int down = 0;
scanf("%d", &N);
scanf("%d", &K);
scanf("%s", S);
for (int i = 0; i < N; i++) {
if (S[i] == '(') {
up++;
brack[i] = up - down;
} else {
brack[i] = down - up;
down++;
}
}
if (S[K-1] == '(') {
int p;
for (int i = 1; i < N; i++) {
p = K-1+i;
if (brack[p] == -(brack[K-1])) {
printf("%d\n", p+1);
break;
}
}
} else if (S[K-1] == ')') {
int m;
for (int i = 1; i < N; i++) {
m = K-1-i;
if (brack[m] == -(brack[K-1])) {
printf("%d\n", m+1);
break;
}
}
}
return EXIT_SUCCESS;
}