結果
問題 | No.22 括弧の対応 |
ユーザー |
![]() |
提出日時 | 2016-01-03 13:26:48 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 915 bytes |
コンパイル時間 | 533 ms |
コンパイル使用メモリ | 73,644 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-20 07:06:57 |
合計ジャッジ時間 | 1,166 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:57:11: warning: ‘ans’ may be used uninitialized in this function [-Wmaybe-uninitialized] 57 | o(ans); | ^~~
ソースコード
#include <iostream> #include <vector> #include <string> #include <sstream> #include <algorithm> #include <map> #include <set> #include <cstdio> #include <cmath> #define rep(i,l,n) for(lint i=l;i<n;i++) #define rer(i,l,n) for(lint i=l;i<=n;i++) #define all(a) a.begin(),a.end() #define o(a) cout<<a<<endl #define pb(a) push_back(a) #define mk(a,b) make_pair(a,b) #define fi first #define se second using namespace std; typedef long long lint; typedef vector<int> vi; typedef vector<lint> vli; typedef vector<vi> vvi; typedef pair<int,int> pii; int main(){ int n,k; string s; cin>>n>>k>>s; k--; int f=0,key=0,ans; vi d(n); rep(i,0,n){ if(s[i]=='('){ f++; d[i]=f; }else{ d[i]=f; f--; } if(i==k) key=d[i]; } if(s[k]=='('){ rep(i,k+1,n){ if(d[i]==key){ ans=i+1; break; } } }else{ for(int i=k-1;i>=0;i--){ if(d[i]==key){ ans=i+1; break; } } } o(ans); }