Submission #1310124

#TimeUsernameProblemLanguageResultExecution timeMemory
1310124mohammadyay사육제 (CEOI14_carnival)C++20
100 / 100
8 ms408 KiB
#include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ordered_set tree<ll, null_type, less_equal<ll>, rb_tree_tag,tree_order_statistics_node_update> //#define endl '\n' using ll = long long; #define pb push_back #define pF first #define pS second #define SP <<' '<< #define all(x) (x).begin(), (x).end() const ll mod7 = 1e9+7, mod9= 998244353, MAX_N = 10000000; //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ll linkls[300], col[300]; ll query(ll n, ll l, ll r) { cout << r-l+2 << " "; cout << n << " "; for (int i=l; i<r; i++) { cout << i << " "; } cout << r << endl; ll x; cin>>x; return x; } ll query(ll l, ll r) { cout << r-l+1 << " "; for (int i=l; i<r; i++) { cout << i << " "; } cout << r << endl; ll x; cin>>x; return x; } int main() { //ios::sync_with_stdio(0); cin.tie(NULL); ll n; cin>>n; for (int i=1; i<=n; i++) { ll l = i+1, r = n; while (l <= r) { ll mi = (l+r)/2; bool equal = 0; if (query(l , mi) == query(i, l, mi)) equal = 1; if (equal) { if (l == r) { linkls[i] = l; break; } r = mi; } else l = mi+1; } } vector<bool> vis(n+1, 0); ll color = 1; for (int i=1; i<=n; i++) { if (vis[i]) continue; ll x = i; while (x != 0) { col[x] = color; vis[x] = 1; x = linkls[x]; } color++; } cout << 0 << " "; for (int i=1; i<n; i++) { cout << col[i] << " "; } cout << col[n] << endl; }
#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...