Submission #34047518


Source Code Expand

#include<bits/stdc++.h>
#ifdef xay5421
#define D(...) fprintf(stderr,__VA_ARGS__)
#define DD(...) D(#__VA_ARGS__ "="),debug_helper::debug(__VA_ARGS__),D("\n")
#include"/home/xay5421/debug.hpp"
#else
#define D(...) ((void)0)
#define DD(...) ((void)0)
#endif
#define pb push_back
#define eb emplace_back
#define SZ(x) ((int)(x).size())
#define each(x,v) for(auto&x:v)
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
template<class T>void rd(T&x){int f=0,c;while(!isdigit(c=getchar()))f^=!(c^45);x=(c&15);while(isdigit(c=getchar()))x=x*10+(c&15);if(f)x=-x;}
template<class T>void pt(T x,int c=-1){if(x<0)putchar('-'),x=-x;if(x>9)pt(x/10);putchar(x%10+48);if(c!=-1)putchar(c);}
using namespace std;
using LL=long long;
using ULL=unsigned long long;
const int N=300005;
int T,n,a[N],pre[N],nex[N],sum[N],ss[N],tt[N];
vector<int>v[5];
int main(){
#ifdef xay5421
	freopen("a.in","r",stdin);
#endif
	rd(T);
	rep(tc,1,T){
		rd(n);
		rep(i,0,n-1){
			rd(a[i]);
		}
		bool ok=1;
		rep(_,0,1){
			if(_==1){
				rep(i,0,n-1)a[i]=5-a[i];
			}
			sum[n]=0;
			ss[n]=0;
			tt[n]=0;
			per(i,n-1,0){
				sum[i]=a[i]==2;
				sum[i]+=sum[i+1];
				ss[i]=a[i]==1;
				ss[i]+=ss[i+1];
				tt[i]=a[i]==3;
				tt[i]+=tt[i+1];
			}
			auto get_sum=[&](int *sum,int l,int r){
				if(l<=r){
					return sum[l]-sum[r+1];
				}else{
					return sum[l]+sum[0]-sum[r+1];
				}
			};
			rep(i,1,4)v[i].clear();
			rep(i,0,n-1){
				v[a[i]].pb(i);
			}
			int last=-1;
			rep(i,0,n-1){
				if(a[i]==3)last=i;
			}
			rep(i,0,n-1){
				pre[i]=last;
				if(a[i]==3)last=i;
			}
			per(i,n-1,0){
				if(a[i]==3)last=i;
			}
			per(i,n-1,0){
				nex[i]=last;
				if(a[i]==3)last=i;
			}
			auto get_len=[&](int l,int r){
				if(l<=r)return r-l-1;
				return n-r-1+l;
			};
			auto test=[&](int l,int r){
				if(l==r)return;
				if(get_len(l,r)&&get_sum(ss,l,r)==get_len(l,r)&&get_sum(sum,nex[r],pre[l])==0){
					ok=0;
				}
			};
			auto work=[&](int x){
				if(get_sum(tt,nex[x],pre[x])==tt[0]){
					if(get_len(pre[x],x)&&get_sum(ss,pre[x],x)==get_len(pre[x],x)){
						ok=0;
					}
					if(get_len(x,nex[x])&&get_sum(ss,x,nex[x])==get_len(x,nex[x])){
						ok=0;
					}
				}
				
			};
			rep(i,0,SZ(v[4])-1){
				test(v[4][i],v[4][(i+1)%SZ(v[4])]);
			}
			rep(i,0,SZ(v[4])-1){
				work(v[4][i]);
			}
		}
		puts(ok?"Yes":"No");
	}
	return 0;
}

Submission Info

Submission Time
Task C - Planar Tree
User xay5421
Language C++ (GCC 9.2.1)
Score 0
Code Size 2462 Byte
Status WA
Exec Time 27 ms
Memory 14120 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 900
Status
AC × 2
AC × 30
WA × 53
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt
All 00-sample-001.txt, 00-sample-002.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt, 01-031.txt, 01-032.txt, 01-033.txt, 01-034.txt, 01-035.txt, 01-036.txt, 01-037.txt, 01-038.txt, 01-039.txt, 01-040.txt, 01-041.txt, 01-042.txt, 01-043.txt, 01-044.txt, 01-045.txt, 01-046.txt, 01-047.txt, 01-048.txt, 01-049.txt, 01-050.txt, 01-051.txt, 01-052.txt, 01-053.txt, 01-054.txt, 01-055.txt, 01-056.txt, 01-057.txt, 01-058.txt, 01-059.txt, 01-060.txt, 01-061.txt, 01-062.txt, 01-063.txt, 01-064.txt, 01-065.txt, 01-066.txt, 01-067.txt, 01-068.txt, 01-069.txt, 01-070.txt, 01-071.txt, 01-072.txt, 01-073.txt, 01-074.txt, 01-075.txt, 01-076.txt, 01-077.txt, 01-078.txt, 01-079.txt, 01-080.txt, 01-081.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 1 ms 3460 KiB
00-sample-002.txt AC 2 ms 3460 KiB
01-001.txt WA 17 ms 3428 KiB
01-002.txt WA 20 ms 3540 KiB
01-003.txt WA 18 ms 3572 KiB
01-004.txt WA 17 ms 3580 KiB
01-005.txt WA 18 ms 3472 KiB
01-006.txt WA 17 ms 3416 KiB
01-007.txt WA 21 ms 3468 KiB
01-008.txt WA 2 ms 3492 KiB
01-009.txt WA 3 ms 3436 KiB
01-010.txt WA 2 ms 3436 KiB
01-011.txt WA 4 ms 3484 KiB
01-012.txt AC 2 ms 3556 KiB
01-013.txt AC 3 ms 3436 KiB
01-014.txt AC 3 ms 3552 KiB
01-015.txt AC 4 ms 3492 KiB
01-016.txt WA 3 ms 3592 KiB
01-017.txt WA 3 ms 3492 KiB
01-018.txt WA 4 ms 3552 KiB
01-019.txt WA 2 ms 3612 KiB
01-020.txt WA 25 ms 11428 KiB
01-021.txt WA 15 ms 4424 KiB
01-022.txt WA 15 ms 3692 KiB
01-023.txt WA 15 ms 3484 KiB
01-024.txt WA 16 ms 3548 KiB
01-025.txt AC 20 ms 11480 KiB
01-026.txt WA 14 ms 4264 KiB
01-027.txt WA 13 ms 3692 KiB
01-028.txt WA 14 ms 3624 KiB
01-029.txt WA 16 ms 3584 KiB
01-030.txt AC 19 ms 11592 KiB
01-031.txt AC 20 ms 11604 KiB
01-032.txt AC 18 ms 11628 KiB
01-033.txt AC 23 ms 13952 KiB
01-034.txt AC 21 ms 13844 KiB
01-035.txt AC 27 ms 13808 KiB
01-036.txt AC 27 ms 13600 KiB
01-037.txt AC 26 ms 13568 KiB
01-038.txt AC 19 ms 12064 KiB
01-039.txt AC 18 ms 11532 KiB
01-040.txt AC 19 ms 12072 KiB
01-041.txt AC 20 ms 12248 KiB
01-042.txt AC 20 ms 11816 KiB
01-043.txt AC 24 ms 11688 KiB
01-044.txt AC 23 ms 11884 KiB
01-045.txt AC 21 ms 11940 KiB
01-046.txt AC 24 ms 11672 KiB
01-047.txt AC 20 ms 11748 KiB
01-048.txt AC 20 ms 11456 KiB
01-049.txt AC 20 ms 11472 KiB
01-050.txt AC 20 ms 11752 KiB
01-051.txt AC 18 ms 11620 KiB
01-052.txt AC 19 ms 11484 KiB
01-053.txt WA 20 ms 11896 KiB
01-054.txt WA 18 ms 12208 KiB
01-055.txt WA 23 ms 11632 KiB
01-056.txt WA 24 ms 14120 KiB
01-057.txt WA 24 ms 13600 KiB
01-058.txt WA 22 ms 13844 KiB
01-059.txt WA 26 ms 13552 KiB
01-060.txt WA 21 ms 13868 KiB
01-061.txt WA 18 ms 11772 KiB
01-062.txt WA 21 ms 11924 KiB
01-063.txt WA 19 ms 11580 KiB
01-064.txt WA 22 ms 12112 KiB
01-065.txt WA 22 ms 12056 KiB
01-066.txt WA 21 ms 11724 KiB
01-067.txt WA 19 ms 11968 KiB
01-068.txt WA 20 ms 11584 KiB
01-069.txt WA 21 ms 11544 KiB
01-070.txt WA 18 ms 11764 KiB
01-071.txt WA 18 ms 11472 KiB
01-072.txt WA 18 ms 11992 KiB
01-073.txt WA 19 ms 11616 KiB
01-074.txt WA 19 ms 11564 KiB
01-075.txt WA 23 ms 11540 KiB
01-076.txt WA 17 ms 9508 KiB
01-077.txt WA 15 ms 9708 KiB
01-078.txt WA 13 ms 4884 KiB
01-079.txt WA 13 ms 3764 KiB
01-080.txt WA 13 ms 3652 KiB
01-081.txt WA 15 ms 3464 KiB