結果
問題 |
No.22 括弧の対応
|
ユーザー |
![]() |
提出日時 | 2019-01-10 03:24:59 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 7 ms / 5,000 ms |
コード長 | 584 bytes |
コンパイル時間 | 591 ms |
コンパイル使用メモリ | 69,376 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-20 07:38:14 |
合計ジャッジ時間 | 1,360 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
コンパイルメッセージ
main.cpp: In function 'int main()': main.cpp:44:31: warning: 'mark' may be used uninitialized [-Wmaybe-uninitialized] 44 | if (T[i] == m && S[i] != mark) main.cpp:33:14: note: 'mark' was declared here 33 | char mark; | ^~~~ main.cpp:44:31: warning: 'm' may be used uninitialized [-Wmaybe-uninitialized] 44 | if (T[i] == m && S[i] != mark) main.cpp:32:13: note: 'm' was declared here 32 | int m; | ^
ソースコード
#include <iostream> #include <string> #include <vector> using namespace std; #define rep(i, n) for (int i = 0; i < n; i++) int main() { int n, k; string S; cin >> n >> k >> S; vector<int> T(n); int i = 0, j = 0; bool flg = false; while (!flg) { while (S[i] != ')' || T[i] != 0) { i++; } T[i] = ++j; flg = i == n - 1 ? true : false; while (T[i] > 0) { i--; } T[i] = j; } int m; char mark; rep(i, n) { if (i + 1 == k) { m = T[i]; mark = S[i]; } } rep(i, n) { if (T[i] == m && S[i] != mark) { cout << i + 1 << endl; } } }