Submission #37020221
Source Code Expand
// what is matter? never mind.
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);++i)
#define Rep(i,a,b) for(int i=(a);i>=(b);--i)
//#define int long long
using namespace std;
inline int read()
{
char c=getchar();int x=0;bool f=0;
for(;!isdigit(c);c=getchar())f^=!(c^45);
for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);
if(f)x=-x;return x;
}
int mod;
typedef unsigned long long ull;
namespace FM{
typedef __uint128_t L;
struct FastMod{
ull b,m;
FastMod(ull b):b(b),m(ull((L(1)<<64)/b)){}
ull reduce(ull a){ull q=(ull)((L(m)*a)>>64),r=a-q*b;return r>=b?r-b:r;}
};
FastMod F(2);
}
struct modint{
int x;
modint(int o=0){x=o;}
modint &operator = (int o){return x=o,*this;}
modint &operator +=(modint o){return x=x+o.x>=mod?x+o.x-mod:x+o.x,*this;}
modint &operator -=(modint o){return x=x-o.x<0?x-o.x+mod:x-o.x,*this;}
modint &operator *=(modint o){return x=FM::F.reduce(1ull*x*o.x),*this;}
modint &operator ^=(int b){
modint a=*this,c=1;
for(;b;b>>=1,a*=a)if(b&1)c*=a;
return x=c.x,*this;
}
modint &operator /=(modint o){return *this *=o^=mod-2;}
friend modint operator +(modint a,modint b){return a+=b;}
friend modint operator -(modint a,modint b){return a-=b;}
friend modint operator *(modint a,modint b){return a*=b;}
friend modint operator /(modint a,modint b){return a/=b;}
friend modint operator ^(modint a,int b){return a^=b;}
friend bool operator ==(modint a,int b){return a.x==b;}
friend bool operator !=(modint a,int b){return a.x!=b;}
bool operator ! () {return !x;}
modint operator - () {return x?mod-x:0;}
bool operator <(const modint&b)const{return x<b.x;}
};
inline modint qpow(modint x,int y){return x^y;}
void initmod(){mod=read(),FM::F=FM::FastMod(mod);}
vector<modint> fac,ifac,iv;
inline void initC(int n)
{
if(iv.empty())fac=ifac=iv=vector<modint>(2,1);
int m=iv.size(); ++n;
if(m>=n)return;
iv.resize(n),fac.resize(n),ifac.resize(n);
For(i,m,n-1){
iv[i]=iv[mod%i]*(mod-mod/i);
fac[i]=fac[i-1]*i,ifac[i]=ifac[i-1]*iv[i];
}
}
inline modint C(int n,int m){
if(m<0||n<m)return 0;
return initC(n),fac[n]*ifac[m]*ifac[n-m];
}
inline modint sign(int n){return (n&1)?(mod-1):(1);}
#define fi first
#define se second
#define pb push_back
#define mkp make_pair
typedef pair<int,int>pii;
typedef vector<int>vi;
#define maxn 200005
#define inf 0x3f3f3f3f
int n,a[maxn],m,c[maxn],tot;
int L[maxn],R[maxn],val[maxn];
pii t[maxn];
void ins(int u,int v){
R[v]=R[u],L[R[v]]=v;
R[u]=v,L[v]=u;
}
void work()
{
n=read();m=0;
For(i,0,n)c[i]=0;
For(i,1,n)a[i]=read(),++c[a[i]];
For(i,1,n)if(c[i])t[++m]=mkp(c[i],i);
sort(t+1,t+m+1,greater<pii>());
For(i,0,n)L[i]=R[i]=0;
int c1=t[1].fi;
For(i,1,c1)val[i]=t[1].se;
For(i,2,c1)L[i]=i-1; L[1]=c1;
For(i,1,c1-1)R[i]=i+1; R[c1]=1;
vi o; For(i,1,c1) o.pb(i); tot=c1;
For(i,2,m){
int cnt=t[i].fi,col=t[i].se;
if(!o.size()){
assert(cnt==1);
val[++tot]=col;
ins(tot-1,tot);
continue;
}
int u=o.back(); o.pop_back();
For(_,1,cnt){
val[++tot]=col;
ins(u,tot);
if(_>1)o.pb(tot);
}
}
int u=1;
For(i,1,tot)cout<<val[u]<<" ",u=R[u];cout<<endl;
}
signed main()
{
int T=read();
while(T--)work();
return 0;
}
Submission Info
Submission Time
2022-12-04 21:17:42+0900
Task
B - Arrange Your Balls
User
Rainbow_qwq
Language
C++ (GCC 9.2.1)
Score
700
Code Size
3309 Byte
Status
AC
Exec Time
98 ms
Memory
8784 KiB
Compile Error
./Main.cpp: In function ‘int read()’:
./Main.cpp:12:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
12 | if(f)x=-x;return x;
| ^~
./Main.cpp:12:15: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
12 | if(f)x=-x;return x;
| ^~~~~~
./Main.cpp: In function ‘void work()’:
./Main.cpp:3:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
3 | #define For(i,a,b) for(int i=(a);i<=(b);++i)
| ^~~
./Main.cpp:101:2: note: in expansion of macro ‘For’
101 | For(i,2,c1)L[i]=i-1; L[1]=c1;
| ^~~
./Main.cpp:101:23: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
101 | For(i,2,c1)L[i]=i-1; L[1]=c1;
| ^
./Main.cpp:3:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
3 | #define For(i,a,b) for(int i=(a);i<=(b);++i)
| ^~~
./Main.cpp:102:2: note: in expansion of macro ‘For’
102 | For(i,1,c1-1)R[i]=i+1; R[c1]=1;
| ^~~
./Main.cpp:102:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
102 | For(i,1,c1-1)R[i]=i+1; R[c1]=1;
| ^
./Main.cpp:3:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
3 | #define For(i,a,b) for(int i=(a);i<=(b);++i)
| ^~~
./Main.cpp:120:2: note: in expansion of macro ‘For’
120 | For(i,1,tot)cout<<val[u]<<" ",u=R[u];cout<<endl;
| ^~~
./Main.cpp:120:39: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
120 | For(i,1,tot)cout<<val[u]<<" ",u=R[u];cout<<endl;
| ^~~~
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
700 / 700
Status
Set Name
Test Cases
Sample
01.txt
All
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt
Case Name
Status
Exec Time
Memory
01.txt
AC
8 ms
3404 KiB
02.txt
AC
45 ms
8256 KiB
03.txt
AC
42 ms
8428 KiB
04.txt
AC
44 ms
8336 KiB
05.txt
AC
45 ms
8332 KiB
06.txt
AC
43 ms
8424 KiB
07.txt
AC
44 ms
8208 KiB
08.txt
AC
39 ms
8304 KiB
09.txt
AC
44 ms
8332 KiB
10.txt
AC
44 ms
8312 KiB
11.txt
AC
39 ms
8288 KiB
12.txt
AC
41 ms
7084 KiB
13.txt
AC
42 ms
7220 KiB
14.txt
AC
40 ms
7644 KiB
15.txt
AC
39 ms
6296 KiB
16.txt
AC
43 ms
7912 KiB
17.txt
AC
42 ms
8784 KiB
18.txt
AC
45 ms
7316 KiB
19.txt
AC
42 ms
7424 KiB
20.txt
AC
42 ms
7180 KiB
21.txt
AC
40 ms
6828 KiB
22.txt
AC
36 ms
5512 KiB
23.txt
AC
40 ms
6728 KiB
24.txt
AC
40 ms
5696 KiB
25.txt
AC
37 ms
5892 KiB
26.txt
AC
38 ms
6128 KiB
27.txt
AC
39 ms
5524 KiB
28.txt
AC
38 ms
5652 KiB
29.txt
AC
43 ms
5572 KiB
30.txt
AC
40 ms
6024 KiB
31.txt
AC
42 ms
7132 KiB
32.txt
AC
36 ms
4468 KiB
33.txt
AC
37 ms
4660 KiB
34.txt
AC
37 ms
4384 KiB
35.txt
AC
37 ms
4228 KiB
36.txt
AC
37 ms
4364 KiB
37.txt
AC
35 ms
3812 KiB
38.txt
AC
36 ms
4016 KiB
39.txt
AC
36 ms
3676 KiB
40.txt
AC
35 ms
3864 KiB
41.txt
AC
33 ms
3876 KiB
42.txt
AC
35 ms
3472 KiB
43.txt
AC
36 ms
3456 KiB
44.txt
AC
35 ms
3568 KiB
45.txt
AC
35 ms
3584 KiB
46.txt
AC
34 ms
3668 KiB
47.txt
AC
48 ms
3544 KiB
48.txt
AC
47 ms
3428 KiB
49.txt
AC
47 ms
3552 KiB
50.txt
AC
48 ms
3628 KiB
51.txt
AC
46 ms
3608 KiB
52.txt
AC
98 ms
3428 KiB