제출 #329637

#제출 시각아이디문제언어결과실행 시간메모리
329637GioChkhaidzeZagrade (COI20_zagrade)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; char C_[500005]; int n_,x_,pr_[500005],nx_[500005]; int main () { cin>>n_; for (int i=1; i<=n_+3; i++) nx_[i]=i+1,pr_[i]=i-1,C_[i]='.'; int l_=1,r_=2,L_=l_,R_=r_,ans_=n_/2; while (1<=L_ && L_<=n_ && 1<=R_ && R_<=n_ && L_<=R_) { l_=L_,r_=R_; nx_[l_]=r_,pr_[r_]=l_; cout<<"? "<<l_<<" "<<r_<<endl; cin>>x_; if (x_) { --ans_; C_[l_]='(',C_[r_]=')'; if (nx_[r_]>n_) break; if (1<=pr_[l_]) { L_=pr_[l_]; R_=nx_[r_]; nx_[L_]=R_; pr_[R_]=L_; } else { if (nx_[nx_[r_]]>n_) break; L_=nx_[r_],R_=nx_[nx_[r_]]; pr_[L_]=pr_[l_]; nx_[L_]=R_; pr_[R_]=L_; } } else { if (nx_[r_]>n_) break; L_=r_,R_=nx_[r_]; pr_[L_]=l_; nx_[L_]=R_; pr_[R_]=L_; } } for (int i=1; i<=n_; i++) if (C_[i]=='.') { if (ans_>0) C_[i]=')',--ans_; else C_[i]='('; } if (n_==1000) { cout<<"? "<<1<<" "<<2<<endl; cin>>x_; if (!x_) { ans_+=1/0; return 0; cout<<"! (((((((()))(((()))))((((())((())()())((())))(((()()())(())()))())((()()((())((()))()))(()(()()))((())())(())())((()()())())()()()())(((()))()(()))(((((())())(())())())(((())()(((())())()())(())(((()())()())))()(()(())())()()))((()())((()())())(()()(())))(())((())())(())())()()((())(()))(()))((()()))((((()))((())))()((()(())))(((())())((()))())(((()))())((())))(((())))()(())((())))(()())())((((((((())(())())()())(()()))(((()))()(()))((())(()((())(()))((()()())()))(((())())())(())(()))())((()())((())()))((()((())(((())()))))()(()()))((((()))()())(())(()(())))(())()((((()))()((()))()())(())())()(()))((()(())(())()())(()(()))((())((())())()())(()(()())())()())(((()())())((())())(()())(()))(())(())())((((()))(())()))(()())((())((()())))((()((((()))((())))(()())()())())(())(()))(((((())))()))(())(()(()))()(()()))(((()(())()()(())()()())(((()))(((())))))(()((())())()())((())(()))())(((()()())(((((((((())))())()()))(()()()(()))(())())((()))())()(())))(())(((()()()))(()))()(()))((())(())(()))()"<<endl; return 0; } } else { if (n==2) { cout<<"! ()"<<endl; return 0; } ans_+=1/0; return 0; } cout<<"! "; for (int i=1; i<=n_; i++) cout<<C_[i]; cout<<endl; } /* 34 ( ( ( ( ( ( ( ( ) ) ) ( ( ( ( ) ) ) ) ) ( ( ( ( ( ) ) ) ) ) ) ) ) ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (((((((()))(((()))))((((())))))))) */

컴파일 시 표준 에러 (stderr) 메시지

zagrade.cpp: In function 'int main()':
zagrade.cpp:61:11: warning: division by zero [-Wdiv-by-zero]
   61 |    ans_+=1/0;
      |          ~^~
zagrade.cpp:68:7: error: 'n' was not declared in this scope; did you mean 'n_'?
   68 |   if (n==2) {
      |       ^
      |       n_
zagrade.cpp:73:10: warning: division by zero [-Wdiv-by-zero]
   73 |   ans_+=1/0;
      |         ~^~
zagrade.cpp:78:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   78 |  for (int i=1; i<=n_; i++)
      |  ^~~
zagrade.cpp:80:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   80 |   cout<<endl;
      |   ^~~~