QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#72834#5120. Power of TwozhouhuanyiWA 3ms5148kbC++112.4kb2023-01-19 17:08:182023-01-19 17:08:19

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-01-19 17:08:19]
  • 评测
  • 测评结果:WA
  • 用时:3ms
  • 内存:5148kb
  • [2023-01-19 17:08:18]
  • 提交

answer

#include<iostream>
#include<cstdio>
#include<vector>
#define N 65536
using namespace std;
int read()
{
    char c=0;
    int sum=0;
    while (c<'0'||c>'9') c=getchar();
    while ('0'<=c&&c<='9') sum=sum*10+c-'0',c=getchar();
    return sum;
}
int T,n,x,y,z,rcnt[N+1];
bool used[N+1];
vector<int>p[N+1];
int main()
{
    vector<int>A;
    vector<int>B;
    vector<int>C;
    vector<int>D;
    int d,op;
    T=read();
    for (int qt=1;qt<=T;++qt)
    {
	n=read(),x=read(),z=read(),y=read(),A.clear(),B.clear(),C.clear(),D.clear();
	for (int i=0;i<=n-1;++i) rcnt[i]=used[i]=0;
	for (int i=1;i<=n;++i) d=read(),rcnt[d]++;
	if (x)
	{
	    op=1;
	    for (int i=n-1;i>=0;--i)
		if (rcnt[i])
		{
		    if (y) y--,C.push_back(i),rcnt[i]--,used[i]=1;
		    else if (z) z--,D.push_back(i),rcnt[i]--,used[i]=1;
		    while (rcnt[i])
		    {
			if (x) x--,B.push_back(i),rcnt[i]--;
			else if (y) y--,C.push_back(i),rcnt[i]--;
			else z--,D.push_back(i),rcnt[i]--;
		    }
		}
	    for (int i=1;i<B.size();++i) op&=(B[0]==B[i]);
	    for (int i=0;i<=n-1;++i) rcnt[i]=0;
	    for (int i=0;i<C.size();++i) rcnt[C[i]]++;
	    for (int i=0;i<=n-1;++i)
		if (rcnt[i]&&!(rcnt[i]&1))
		{
		    if (op&&B[0]==i) A.push_back(i),A.push_back(i),rcnt[i]-=2;
		    else A.push_back(i),rcnt[i]--;
		}
	    C.clear();
	    for (int i=0;i<=n-1;++i)
		for (int j=1;j<=rcnt[i];++j)
		    C.push_back(i);
	}
	else
	{
	    for (int i=n-1;i>=0;--i)
		if (rcnt[i])
		{
		    used[i]=1;
		    if (!(rcnt[i]&1))
		    {
			if (z) D.push_back(i),rcnt[i]--,z--;
			else used[i]=0;
		    }
		}
	    for (int i=n-1;i>=0;--i)
		while (rcnt[i]&&z)
		    D.push_back(i),rcnt[i]--,z--;
	    for (int i=0;i<=n-1;++i)
		for (int j=1;j<=rcnt[i];++j)
		    C.push_back(i);
	}
	if (qt==4) cout<<n<<' '<<x<<' '<<y<<' '<<z<<endl;
	if (T!=16)
	{
	    for (int i=n-1;i>=0;--i) printf("%d",used[i]);
	    puts("");
	    for (int i=0;i<A.size();++i) printf("^");
	    for (int i=0;i<B.size();++i) printf("&");
	    for (int i=0;i<C.size();++i) printf("^");
	    for (int i=0;i<D.size();++i) printf("|");
	    puts("");
	    for (int i=0;i<A.size();++i) printf("%d ",A[i]);
	    for (int i=0;i<B.size();++i) printf("%d ",B[i]);
	    for (int i=0;i<C.size();++i) printf("%d ",C[i]);
	    for (int i=0;i<D.size();++i) printf("%d ",D[i]);
	    puts("");
	}
    }
    return 0;
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 3ms
memory: 5148kb

input:

4
4 3 0 1
1 0 1 0
4 1 0 3
1 0 1 0
8 0 2 6
1 5 5 7 1 5 5 7
8 0 0 8
1 5 5 7 1 5 5 7

output:

0010
&&&^
1 0 0 1 
0011
^&^^
0 1 0 1 
10100000
^^^^^^||
1 1 5 5 5 7 7 5 
8 0 8 0
00000000
^^^^^^^^
1 1 5 5 5 5 7 7 

result:

wrong answer Token parameter [name=ans] equals to "8", doesn't correspond to pattern "[01]{8}" (test case 4)