제출 #1156167

#제출 시각아이디문제언어결과실행 시간메모리
1156167minh30082008Art Collections (BOI22_art)C++20
100 / 100
770 ms512 KiB
#include <cstdarg> #include <cstdio> #include <cstdlib> #include <set> #include <vector> #include "art.h" #include<bits/stdc++.h> #define INF 1e18 #define fi first #define se second #define FOR(i, k, n) for(ll i = k; i <= n; i++) #define FOR1(i, k, n) for(ll i = k; i >= n; i--) #define pb push_back #define fastio ios::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define vi vector<int> #define pii pair<int, int> #define vii vector<pii> #define ll long long #define vll vector<ll> #define pll pair<ll, ll> #define re return 0 #define mii map<int, int> #define input "chinaflu.inp" #define output "chinaflu.out" #define rf freopen(input, "r", stdin); freopen(output, "w", stdout) using namespace std; const int maxn = 1e5 + 5; const int mod = 1e9 + 9; const int base = 998244353; void add(int &a, int b) { a += b; if(a >= mod) a -= mod; if(a < 0) a += mod; } mt19937 rd(chrono::steady_clock::now().time_since_epoch().count()); int rand(int l, int r) { return uniform_int_distribution<int>(l, r) (rd); } int A[4005], B[4005]; void solve(int n) { vi ask; FOR(i, 1, n) ask.pb(i); int cnt = 0; while(true) { if(ask.back() == n && cnt) break; cnt = 1; int res = publish(ask); A[ask[0]] = res; B[ask.back()] = res; ask.pb(ask[0]); ask.erase(ask.begin()); } vi ans(n); FOR(i, 1, n) { int tmp = A[i] + B[i] - n + 1; tmp /= 2; tmp = A[i] - tmp; ans[tmp] = i; } answer(ans); }
#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...