Submission #1145387

#TimeUsernameProblemLanguageResultExecution timeMemory
1145387modwweLibrary (JOI18_library)C++20
100 / 100
124 ms436 KiB
#pragma GCC optimize("Ofast,unroll-loops") #include "library.h" #include<bits/stdc++.h> //#define int long long #define ll long long #define down cout<<'\n'; #define debug cout<<" cucuucucuuu",down #define NHP ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0); #define modwwe int t;cin>>t; while(t--) #define bit(i,j) (i>>j&1) #define sobit(a) __builtin_popcountll(a) #define task2 "partner" #define task "test" #define fin(x) freopen(x".inp","r",stdin) #define fou(x) freopen(x".out","w",stdout) #define pb push_back #define mask(k) (1<<k) #define mp make_pair #define checktime cerr << (double)clock() / CLOCKS_PER_SEC * 1000 << " ms"; using namespace std; #define getchar_unlocked getchar mt19937 rd(chrono::steady_clock::now().time_since_epoch().count()); int rand(int l,int r) { return uniform_int_distribution<int>(l,r)(rd); } inline int scan() { char c = getchar_unlocked(); int x = 0; while (c < '0' || c > '9') { c = getchar_unlocked(); } while (c >= '0' && c <= '9') { x = (x << 1) + (x << 3) + c - '0'; c = getchar_unlocked(); } return x; } void phongbeo(); const int inf = 1e9; int mod2 = 1e9+7; const int mod1 = 998244353; const ll base=67; int add(int x,int y) { if(x+y>=mod2) x-=mod2; if(x+y<0)x+=mod2; return x+y; } struct icd { long double a; int b; }; struct ib { ll a; int b; }; struct ic { int a,b,c; }; struct id { int a, b, c, d; }; struct ie { int a, b, c, d, e; }; ll n, m, s1, s2, s4, s3, sf, k, s5, s6, mx, s7, s8, s9, mx2, res, dem2 = 0, dem = 0, s33, dem3, dem4, mid, l2, r2, center; ll i, s10, s12,k1,k2,k3,s11,lim,w,l,r ; ll kk; ll el = 19;/* main() { if(fopen(task2".inp","r")) { fin(task2); fou(task2); } if(fopen(task".inp","r")) { fin(task); fou(task); } NHP // cin>>s1; //modwwe phongbeo(); // checktime }*/ vector<int> start,v,lost,h; bool c[1001];/* int query(vector<int>& v) { int s=0; if(v[h[0]-1])s++; for(int i=1; i<n; i++) { if(v[h[i]-1]&&v[h[i]-1]!=v[h[i-1]-1]) s++; } return s; } void Answer(vector<int>&v) { bool de=0; for(int i=0; i<v.size(); i++) { if(v[i]!=h[i]) break; if(i==v.size()-1)de=1; } reverse(v.begin(),v.end()); for(int i=0; i<v.size(); i++) { if(v[i]!=h[i]) break; if(i==v.size()-1)de=1; } if(!de) { cout<<"-1 apio"; } }*/ int get(vector<int>&a) { if(a.size()==1) return a[0]; int mid=a.size()/2; int costleft,costright; for(int i=0; i<mid; i++) v[a[i]]=1; costleft=Query(v); for(int i=0; i<n; i++) if(!c[i]) v[i]=1-v[i]; v[s3]=0; costright=Query(v); for(int i=0; i<n; i++) v[i]=0; v[s3]=1; vector<int> b; if(costleft>costright) { for(int i=0; i<mid; i++) b.pb(a[i]); } else { for(int i=mid; i<a.size(); i++) b.pb(a[i]); } return get(b); } void Solve(int N) { if(N==1) { start.pb(1); Answer(start); return; } if(N==2) { start.pb(2); start.pb(1); Answer(start); return; } n=N; for(int i=1; i<=n; i++) v.pb(1); for(int i=0; i<n; i++) { v[i]=0; s2=Query(v); if(s2==1) { s3=i; break; } v[i]=1; } for(int i=1; i<=n; i++) v[i]=0; c[s3]=1; v[s3]=1; for(int i=2; i<=n; i++) { lost.clear(); for(int j=0; j<n; j++) if(!c[j]) lost.pb(j); s2=get(lost); c[s2]=1; v[s2]=0; start.pb(s2+1); } start.pb(s3+1); Answer(start); }/* void phongbeo() { cin>>n; h.resize(n); for(int i=1; i<=n; i++) { //cin>>h[i-1]; h[i-1]=i; } shuffle(h.begin(),h.end(),rd); //for(auto x:h) // cout<<x<<" "; solve(n); }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...