제출 #1274689

#제출 시각아이디문제언어결과실행 시간메모리
1274689raditya_noorMađioničar (COI22_madionicar)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#define psb push_back
#define ppb pop_back
#define sz size
#define em empty
#define bgn begin
#define rbgn rbegin
#define fr first
#define sc second
using namespace std;

bool qu(int a, int b){
	cout << "? " << a << ' ' << b << endl;
	bool ret; cin >> ret; return ret;
}

int main(){
	int n; cin >> n;
	int ord[n + 1] = {0}; for(int i = 1; i <= n; i++) ord[i] = i;
	//even lengths
	int ans = 1;
	for(int i = 2, len = 1; i <= n; i++){
		if(qu(i - 1, i)){
			ord[i] = ord[i - 1];
			ans = max(ans, ++len);
		}else len = 1;
	}
	//combine
//	bool dn[n + 1] = {0};
	for(int i = 2; i <= n; i++){
		if(ord[i - 1] != ord[i]){
			int l = i - 1, r = i;
			while(r + 1 <= n && ord[r] == ord[r + 1]) r++; 
			if(r + 1 <= n) r++;
			bool y = 1;
			while(y){
				while((l - 1 > 0 && r + 1 <= n && ord[l - 1] == ord[l] && ord[r] == ord[r + 1]) || r - l + 1 <= ans)){
					l--;
					r++;
				}
				if(r - l + 1 >= ans && (l > 0 && r <= n) && qu(l, r)){
					ans = max(ans, r - l + 1);
					l--; r++;
				}else y = 0;
			}
		}
	}
	cout << "! " << ans << endl;
	return 0;
}

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

Main.cpp: In function 'int main()':
Main.cpp:37:133: error: expected primary-expression before ')' token
   37 |                                 while((l - 1 > 0 && r + 1 <= n && ord[l - 1] == ord[l] && ord[r] == ord[r + 1]) || r - l + 1 <= ans)){
      |                                                                                                                                     ^