QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#821698#8307. Club AssignmentBrno (Bocheng Jiang, Zhenyu Wang, Taixiang Wang)#WA 0ms3692kbC++201.5kb2024-12-19 17:26:462024-12-19 17:26:48

Judging History

This is the latest submission verdict.

  • [2024-12-19 17:26:48]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3692kb
  • [2024-12-19 17:26:46]
  • Submitted

answer

#include<bits/stdc++.h>
#define pii pair<int,int>
#define fi first
#define se second
#define mkp make_pair
using namespace std;
const int maxn=1e5+100,lim=2e9;
pii p[maxn];
int a[maxn],id[maxn],c[maxn];
int n;
int check(int k) {
	for (int l=1,r;l<=n;l=r+1) {
		r=l;
		while (r+1<=n&&(a[r+1]>>k)==(a[l]>>k)) r++;
		if (r-l+1>=3) return -1;
	}
	return 1;
}
int ans=lim;
void calc(int k) {
	for (int l=1,r;l<=n;l=r+1) {
		r=l;
		while (r+1<=n&&(a[r+1]>>k)==(a[l]>>k)) r++;
		int len=r-l+1,ret=-1;
		for (int S=0;S<(1<<len);S++) {
			int tmp=lim;
			for (int i=0;i<len;i++) {
				if (S>>i&1) continue;
				for (int j=i+1;j<len;j++) {
					if (S>>j&1) continue;
					tmp=min(tmp,a[l+i]^a[l+j]);
				}
			}
			for (int i=0;i<len;i++) {
				if (S>>i&1) ;
				else continue;
				for (int j=i+1;j<len;j++) {
					if (S>>j&1) ;
					else continue;
					tmp=min(tmp,a[l+i]^a[l+j]);
				}
			}
			if (tmp>ret) {
				ret=tmp;
				for (int i=0;i<len;i++) {
					c[l+i]=1+(S>>i&1);
				}
			}
		}
		ans=min(ans,ret);
	}
}

int main() {
	int T;
	cin>>T;
	while (T--) {
		cin>>n;
		for (int i=1;i<=n;i++) {
			cin>>p[i].fi;
			p[i].se=i;
		}
		sort(p+1,p+n+1);
		for (int i=1;i<=n;i++) {
			a[i]=p[i].fi;
			id[p[i].se]=i;
		}
		int k=30;
		while (k>=0&&check(k)==-1) k--;
		if (k==-1) {
			cout<<"0\n";
			for (int i=1;i<=n;i++) {
				cout<<1;
			}
			cout<<'\n';
		} else {
			k++;
			cout<<(1<<k)<<"\n";
			calc(k);
			cout<<ans<<'\n';
			for (int i=1;i<=n;i++) {
				cout<<c[id[i]];
			}
		}
		ans=lim;
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3692kb

input:

2
3
1 2 3
3
5 5 5

output:

4
3
2210
111

result:

wrong answer Line "3" doesn't correspond to pattern "[1-2]{1,100000}"