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
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
AC × 1
AC × 52
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