제출 #578935

#제출 시각아이디문제언어결과실행 시간메모리
578935Belgutei동굴 (IOI13_cave)C++17
51 / 100
106 ms408 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ff first #define ss second #define pb push_back #define mk make_pair int l,r; vector<int> v; vector<int> :: iterator it; void exploreCave(int N) { int x[N]; int a[N]; int tp[N]; int ans[N]; memset(a, 0, sizeof(a)); // for(int i = 0; i < N; i ++) { v.pb(i); } // memset(tp, -1, sizeof(tp)); // for(int i = 0; i < N; i ++) { l = 0; r = v.size() - 1; while(l < r) { int tur = tryCombination(a); if(tur == -1) tur = N; int mid = (l + r) / 2; // cout << l << ' ' << r << ' ' << mid << '\n'; // cout << tur << ": "; // for(int j = 0; j < N; j ++) { // cout << a[j] << ' '; // } // cout << '\n'; for(int j = l; j <= mid; j ++) { a[v[j]] = 1 - a[v[j]]; } int tmp = tryCombination(a); if(tmp == -1) tmp = N; // cout << tmp << ": "; // for(int j = 0; j < N; j ++) { // cout << a[j] << ' '; // } // cout << '\n'; if(tur <= i && tmp > i) { r = mid; } else if(tur <= i && tmp <= i) { l = mid + 1; } else if(tur > i && tmp <= i) { r = mid; } else l = mid + 1; //cout << l << ' ' << r << '\n'; } ans[v[l]] = i; int tur = tryCombination(a); if(tur == -1) tur = N; if(tur > i) { tp[v[l]] = a[v[l]]; } else { a[v[l]] = 1 - a[v[l]]; tp[v[l]] = a[v[l]]; } it = lower_bound(v.begin(), v.end(), v[l]); v.erase(it); } answer(tp, ans); }

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:17:9: warning: unused variable 'x' [-Wunused-variable]
   17 |     int x[N];
      |         ^
#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...