제출 #17212

#제출 시각아이디문제언어결과실행 시간메모리
17212erdemkiraz동굴 (IOI13_cave)C++98
100 / 100
1369 ms632 KiB
#include <bits/stdc++.h> using namespace std; #define type(x) __typeof((x).begin()) #define foreach(it, x) for(type(x) it = (x).begin(); it != (x).end(); it++) typedef long long ll; typedef pair < int, int > ii; const int inf = 1e9 + 333; const ll linf = 1e18 + inf; #include "cave.h" const int N = 5000 + 5; int n; int a[N], q[N], ans[N]; int f(int x, int k) { for(int i = 0; i < n; i++) { if(a[i] != -1) q[i] = a[i]; else if(i <= x) q[i] = k; else q[i] = !k; } return tryCombination(q); } void exploreCave(int n) { :: n = n; memset(a, -1, sizeof(a)); for(int i = 0; i < n; i++) { if(f(n - 1, 0) != i) { //open -> 0 int l = 0, r = n - 1; while(l < r) { int m = l + r >> 1; if(f(m, 0) == i) l = m + 1; else r = m; } ans[l] = i; a[l] = 0; //printf("i = %d l = %d\n", i, l); } else { //open -> 1 int l = 0, r = n - 1; while(l < r) { int m = l + r >> 1; if(f(m, 1) == i) l = m + 1; else r = m; } ans[l] = i; a[l] = 1; //printf("i = %d l = %d\n", i, l); } } answer(a, ans); }

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:40:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int m = l + r >> 1;
             ~~^~~
cave.cpp:54:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int m = l + r >> 1;
             ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...