제출 #969101

#제출 시각아이디문제언어결과실행 시간메모리
969101__Davit__동굴 (IOI13_cave)C++17
100 / 100
504 ms600 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; // //void answer(int S[], int D[], int N) { // for (int i = 0; i < N; i++)cout << S[i] << " "; // cout << endl; // for (int i = 0; i < N; i++)cout << D[i] << " "; // cout << endl; //} // //int tryCombination(int S[], int N) { // cout << "! "; // for (int i = 0; i < N; i++)cout << S[i] << " "; // cout << endl; // int x; // cin >> x; // return x; //} // void exploreCave(int N) { int a[N]; int b[N]; for (int i = 0; i < N; i++)a[i] = 0; for (int i = 0; i < N; i++)b[i] = -1; int x; for (int i = 0; i < N; i++) { // x = tryCombination(a, N); x = tryCombination(a); if (x == i) { for (int j = 0; j < N; j++) { if (b[j] == -1) a[j] ^= 1; } } int ina = 0, inb = N - 1, ans = N - 1; while (ina <= inb) { int mid = (ina + inb) >> 1; for (int j = 0; j <= mid; j++) { if (b[j] == -1) a[j] ^= 1; } // x = tryCombination(a, N); x = tryCombination(a); for (int j = 0; j <= mid; j++) { if (b[j] == -1) a[j] ^= 1; } if (x == i) { ans = mid; inb = mid - 1; } else { ina = mid + 1; } } b[ans] = i; } // answer(a, b, N); answer(a, b); } //int main() { // exploreCave(4); //}
#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...