제출 #1202714

#제출 시각아이디문제언어결과실행 시간메모리
1202714Ahmed_KaanicheMinerals (JOI19_minerals)C++20
40 / 100
16 ms4720 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define endl '\n' #define fi first #define se second #define pb push_back void devide(ll n, vector<ll> x, vector<ll> y) { // cout << n << endl; if (n == 1) { // cout << x[0] << ' ' << y[0] << endl; Answer(x[0], y[0]); return; } vector<ll> a, b, c, d; for (ll i = 0; i < n / 2; ++i) { Query(x[i]); a.pb(x[i]); } for (ll i = n / 2; i < n; ++i) b.pb(x[i]); // cout << "A" << endl; // for (ll i = 0; i < n / 2; ++i) // cout << a[i] << ' '; // cout << endl; // cout << "B" << endl; // for (ll i = 0; i < n / 2; ++i) // cout << b[i] << ' '; // cout << endl; for (ll i = 0; i < n; ++i) { ll curr = Query(y[i]); if (curr == n / 2) c.pb(y[i]); else d.pb(y[i]); Query(y[i]); } // cout << "C" << endl; // for (ll i = 0; i < n / 2; ++i) // cout << c[i] << ' '; // cout << endl; // cout << "D" << endl; // for (ll i = 0; i < n / 2; ++i) // cout << d[i] << ' '; // cout << endl; for (ll i = 0; i < n/2; ++i) Query(a[i]); devide(n / 2, a, c); devide(n - n / 2, b, d); } void Solve(int n) { vector<ll> x, y; ll curr, prev = 0; for (ll i = 1; i <= 2 * n; ++i) { curr = Query(i); if (curr == prev) { y.pb(i); Query(i); } else { x.pb(i); prev = curr; } } for (ll i = 0; i < n; ++i) { Query(x[i]); } devide(n, x, y); }
#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...