結果
| 問題 |
No.22 括弧の対応
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2014-11-01 04:18:11 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,162 bytes |
| コンパイル時間 | 1,046 ms |
| コンパイル使用メモリ | 68,736 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-12-30 15:51:40 |
| 合計ジャッジ時間 | 1,800 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 19 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:23:29: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
23 | printf("strlen() = %d\n", strlen(lpString));
| ~^ ~~~~~~~~~~~~~~~~
| | |
| int size_t {aka long unsigned int}
| %ld
main.cpp:36:33: warning: ‘targetlevel’ may be used uninitialized in this function [-Wmaybe-uninitialized]
36 | if (level == targetlevel) {
| ^~
ソースコード
/*
yukicoder No.22
使è
ï¼ããã½ã
使ç¨è¨èªï¼C/C++
*/
#include <iostream>
#include <iomanip>
#include <stack>
#include <cstdio>
#include <cstring>
using namespace std;
int main(void) {
int N, K;
char *lpString;
cin >> N >> K;
printf("N = %d , K = %d\n", N, K);
K--;
lpString = new char[N + 1];
cin >> setw(N + 1) >> lpString;
printf("strlen() = %d\n", strlen(lpString));
if (*(lpString + K) == '(') {
//Kçªç®ã(ã®å ´å
int level = 0;
int targetlevel;
for (int i = 0; i < N; i++) {
if (*(lpString + i) == '(') {
level++;
if (i == K) {
targetlevel = level;
}
} else if (*(lpString + i) == ')') {
if (level == targetlevel) {
printf("%d\n", i + 1);
break;
}
level--;
}
}
} else {
//Kçªç®ã)ã®å ´å
stack<int> PosStack;
for (int i = 0; i < K ; i++) {
if (*(lpString + i) == '(') PosStack.push(i);
else if (*(lpString + i) == ')') PosStack.pop();
}
printf("%d\n", PosStack.top() + 1);
}
delete[]lpString;
return 0;
}