제출 #263065

#제출 시각아이디문제언어결과실행 시간메모리
263065keko37Minerals (JOI19_minerals)C++14
80 / 100
76 ms3468 KiB
#include<bits/stdc++.h> #include "minerals.h" using namespace std; typedef vector <int> vi; int n, prosli = 0; bool pitaj (int x) { int novi = Query(x); bool res = (prosli != novi); prosli = novi; return res; } void calc (vi a, vi b, bool ta, bool tb) { int siz = a.size(); if (siz == 1) { Answer(a[0], b[0]); return; } int pola = siz / 2; vi a1, b1, a2, b2; if (ta == 0) { for (int i = 0; i < siz; i++) { if (i < pola) { pitaj(a[i]); a1.push_back(a[i]); } else { a2.push_back(a[i]); } } } else { for (int i = 0; i < siz; i++) { if (i < pola) { pitaj(a[siz-1 - i]); a2.push_back(a[siz-1 - i]); } else { a1.push_back(a[siz-1 - i]); } } } for (int i = 0; i < siz; i++) { if (pitaj(b[i])) b2.push_back(b[i]); else b1.push_back(b[i]); } calc(a1, b1, 1, !tb); calc(a2, b2, 0, !tb); } void init () { vi a, b; for (int i = 1; i <= 2 * n; i++) { if (pitaj(i)) a.push_back(i); else b.push_back(i); } calc(a, b, 1, 1); } void Solve (int N) { n = N; init(); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...