Submission #1209090

#TimeUsernameProblemLanguageResultExecution timeMemory
1209090MalixArt Collections (BOI22_art)C++20
100 / 100
763 ms496 KiB
#include "art.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vii; typedef pair<int,int> pi; typedef vector<pi> pii; typedef tuple<int,int,int> ti; typedef vector<ll> li; typedef vector<li> lii; #define REP(i,a,b) for(int i=a;i<b;i++) #define F first #define S second #define PB push_back #define LSOne(s) ((s)&(-s)) ll INF=1000000000000000010; int inf=1e9+10; ll M=1e9+7; void solve(int n) { vi a(n,-1); vector<bool> b(n,0); vi arr(n); REP(i,0,n)arr[i]=i+1; int p=publish(arr); REP(i,0,n)arr[i]=i+2; arr[n-1]=1; int q=publish(arr); a[0]=(p-q+n-1)/2; b[a[0]]=1; vi pr(n,0); pr[0]=a[0]; REP(i,1,n-1){ p-=a[i-1]; arr.clear(); REP(j,0,n)if(i!=j)arr.PB(j+1); arr.PB(i+1); q=publish(arr)-pr[i-1]; int t=(p-q+n-i-1)/2; REP(j,0,n)if(b[j]==0){ a[i]=j; if(t==0)break; t--; } b[a[i]]=1; pr[i]=pr[i-1]+a[i]; } REP(i,0,n)if(!b[i])a[n-1]=i; vi ans(n); REP(i,0,n)ans[a[i]]=i+1; 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...