Submission #1267515

#TimeUsernameProblemLanguageResultExecution timeMemory
1267515MateiKing80Ancient Machine 2 (JOI23_ancient2)C++20
0 / 100
0 ms320 KiB
#include "ancient2.h" #include <bits/stdc++.h> using namespace std; string Solve(int n) { //n = 1000 sau ceva int m = n / 2; string ans; for (int i = 0; i < m; i ++) { //aflu manual primele 500 vector<int> a(i + 3), b(i + 3); for (int j = 0; j < i; j ++) a[j] = b[j] = j + 1; a[i] = i + 1; b[i] = i + 2; a[i + 1] = b[i + 1] = i + 1; a[i + 2] = b[i + 2] = i + 2; int x = Query(i + 3, a, b); if (x == i + 1) ans.push_back('0'); else ans.push_back('1'); } for (int i = m; i < n; i ++) { vector<int> a(m + 1), b(m + 1); for (int j = 0; j < m; j ++) a[j] = b[j] = (j + 1) % m; a[m] = b[m] = m; if (ans[i % m] == '0') { b[i % m] = m; int x = Query(m + 1, a, b); if (x == m) ans.push_back('1'); else ans.push_back('0'); } else { a[i % m] = m; int x = Query(m + 1, a, b); if (x == m) ans.push_back('0'); else ans.push_back('1'); } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...