# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
553705 | 2022-04-26T16:22:29 Z | amunduzbaev | Super Dango Maker (JOI22_dango3) | C++17 | 534 ms | 612 KB |
#include "dango3.h" #ifndef EVAL #include "grader.cpp" #endif #include "bits/stdc++.h" using namespace std; void Solve(int n, int m) { vector<int> a(n * m); iota(a.begin(), a.end(), 0); for(int i=m;i>0;i--){ int j=n*i-1; vector<int> tmp; auto ask = [&](int j){ vector<int> tt; for(int i=0;i<=j;i++) tt.push_back(a[i] + 1); for(auto x : tmp) tt.push_back(a[x] + 1); return Query(tt); }; while(~j){ if(ask(j)){ if(!j) { tmp.push_back(j); break; } j = max(j - i, 0); } else { int l = j, r = min(j + i, tmp.empty() ? n * m : tmp.back() - 1); while(l < r){ int m = (l + r) >> 1; if(ask(m)) r = m; else l = m + 1; } assert(l == r); tmp.push_back(l); j = l - 1; } } auto give = [&](vector<int>& tt){ reverse(tt.begin(), tt.end()); /* for(auto x : tt) cout<<x<<" "; cout<<"\n"; for(auto x : a) cout<<x<<" "; cout<<"\n"; */ vector<int> tmp, qq; for(int j=0, l=0;j<n*i;j++){ if(l<n && tt[l] == j) { qq.push_back(a[j] + 1); l++; continue; } tmp.push_back(a[j]); } swap(tmp, a); Answer(qq); assert(qq.size() == n); }; assert(tmp.size() == n); give(tmp); } } /* 3 2 3 3 1 2 1 2 */
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 340 KB | Output is correct |
2 | Correct | 0 ms | 340 KB | Output is correct |
3 | Correct | 1 ms | 340 KB | Output is correct |
4 | Correct | 1 ms | 340 KB | Output is correct |
5 | Correct | 1 ms | 340 KB | Output is correct |
6 | Correct | 1 ms | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 340 KB | Output is correct |
2 | Correct | 11 ms | 372 KB | Output is correct |
3 | Correct | 17 ms | 376 KB | Output is correct |
4 | Correct | 19 ms | 340 KB | Output is correct |
5 | Correct | 9 ms | 376 KB | Output is correct |
6 | Correct | 9 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 160 ms | 500 KB | Output is correct |
2 | Correct | 158 ms | 480 KB | Output is correct |
3 | Correct | 404 ms | 468 KB | Output is correct |
4 | Correct | 403 ms | 592 KB | Output is correct |
5 | Correct | 115 ms | 480 KB | Output is correct |
6 | Correct | 114 ms | 484 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 534 ms | 612 KB | Wrong Answer [3] |
2 | Halted | 0 ms | 0 KB | - |