QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#884828 | #9785. Shrooks | zhanghuanrui | WA | 0ms | 5968kb | C++14 | 1.8kb | 2025-02-06 11:07:12 | 2025-02-06 11:07:13 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
#ifdef zhr_debug
void debug(const char *s,...){static va_list args;va_start(args,s);vfprintf(stderr,s,args);va_end(args);}
#else
void debug(const char* s,...){}
#endif
using namespace std;
void freopen(string file){freopen((file+".in").c_str(),"r",stdin);freopen((file+".out").c_str(),"w",stdout);}
const int mod=998244353;
int n,m;
int a[200009];
int b[200009];
int ans[6];
void rotate()
{
for(int i=1;i<=n;i++) b[i]=-1;
for(int i=1;i<=n;i++) if(a[i]>=0) b[n-a[i]+1]=i;
for(int i=1;i<=n;i++) a[i]=b[i];
}
int calc(int x1,int x2,int y1,int y2)
{
if(!(a[x1]==y1 || a[x1]==y2 || a[x1]==-1) || !(a[x2]==y1 || a[x2]==y2 || a[x2]==-1)) return 0;
if(a[x1]!=-1 && a[x2]!=-1 && a[x1]==a[x2]) return 0;
if(a[x1]==-1 && a[x2]==-1) return 2;
return 1;
}
int f(vector<int> vec){int ret=0;for(int x1:vec)ret+=!!x1;return max(0ll,ret-1);}
int solve()
{
scanf("%lld",&n);m=n/2;
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
if(n&1)
{
for(int o:{0,1,2,3})
{
if(a[n]!=m+1 && a[n]!=-1) ans[o]=0;
else
{
ans[o]=1;
for(int i=0;i<m;i++) ans[o]=ans[o]*calc(m-i,m+1+i,1+i,n-i)%mod;
}
rotate();
}
return (ans[0]+ans[1]+ans[2]+ans[3]-f({ans[0],ans[1]})-f({ans[0],ans[3]})-f({ans[2],ans[1]})-f({ans[2],ans[3]}))%mod;
}
else
{
for(int o:{0,1,2,3})
{
if(a[1]!=m && a[1]!=-1 || a[m+1]!=n && a[m+1]!=-1) ans[o]=0;
else
{
ans[o]=1;
for(int i=0;i<m-1;i++) ans[o]=ans[o]*calc(2+i,n-i,m-i-1,m+i+1)%mod;
}
rotate();
}
ans[4]=1;
for(int i=0;i<m;i++) ans[4]=ans[4]*calc(1+i,n-i,m-i,m+1+i)%mod;
return (ans[0]+ans[1]+ans[2]+ans[3]+ans[4]-f({ans[0],ans[2],ans[4]})-f({ans[1],ans[3],ans[4]}))%mod;
}
}
signed main()
{
int t;
cin>>t;
while(t--)solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 5968kb
input:
6 2 1 2 3 -1 -1 -1 4 1 -1 -1 -1 5 1 -1 -1 -1 5 6 3 -1 -1 -1 -1 4 10 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
output:
result:
wrong answer Answer contains longer sequence [length = 6], but output contains 0 elements