結果

問題 No.22 括弧の対応
コンテスト
ユーザー sasa
提出日時 2025-03-06 16:45:10
言語 C++14
(gcc 15.2.0 + boost 1.90.0)
コンパイル:
g++-15 -O2 -lm -std=c++14 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 1 ms / 5,000 ms
コード長 600 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 83 ms
コンパイル使用メモリ 39,988 KB
実行使用メモリ 5,760 KB
最終ジャッジ日時 2026-07-06 21:41:34
合計ジャッジ時間 1,263 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 19
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:42:11: warning: 'answer' may be used uninitialized [-Wmaybe-uninitialized]
   42 |     printf("%d\n",answer);
      |     ~~~~~~^~~~~~~~~~~~~~~
main.cpp:12:9: note: 'answer' was declared here
   12 |     int answer;
      |         ^~~~~~

ソースコード

diff #
raw source code

#include <stdio.h>


int main(void) {
	char str[10010];
	int length,des;
    scanf ("%d %d",&length,&des);
    scanf ("%s",&str);

    int right,left;
    int vec;
    int answer;

	right=0;
	left=0;

    if (str[des-1] == '(') {
		for (int i = des-1; i < length; i++) {
			if ( str[i] == '('){
				right++ ;
			}else{
				left++ ;
			}
			if (right==left) {
				answer=i+1;
				break;
			}
		}
    } else {
		for (int i = des-1; i >= 0; i--) {
			if ( str[i] == '('){
				right++ ;
			}else{
				left++ ;
			}
			if (right==left) {
				answer=i+1;
				break;
			}
		}
	}
    printf("%d\n",answer);
}
0