QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#516884#9176. Non-Interactive Nimucup-team1198#WA 24ms3656kbC++14975b2024-08-12 22:58:392024-08-12 22:58:39

Judging History

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

  • [2024-08-12 22:58:39]
  • 评测
  • 测评结果:WA
  • 用时:24ms
  • 内存:3656kb
  • [2024-08-12 22:58:39]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using ld = long double;
using pii = pair<int, int>;

#define all(a) (a).begin(), (a).end()

#define int long long

void solve() {
	int n;
	cin >> n;
	vector<int> a(n);
	for (int& i : a) cin >> i;

	if (n >= 202) {
		cout << "-1\n";
		return;
	}

	set<pii, std::greater<pii>> s;
	for (int i = 0; i < n; ++i) s.insert({a[i], i});

	vector<pii> ans;

	while (!s.empty()) {
		auto ft = *s.begin();
		s.erase(ft);
		auto st = *s.begin();
		s.erase(st);

		ans.push_back(st);
		ft.first ^= st.first;

		if (s.empty()) {
			break;
		}

		auto fd = *s.begin();
		if ((fd.first & st.first) > (fd.first ^ st.first)) {
			cout << "-1\n";
			return;
		}

		if (ft.first != 0) {
			s.insert(ft);
		}
	}

	cout << ans.size() << '\n';
	for (pii i : ans) {
		cout << i.second + 1 << ' ' << i.first << '\n';
	}


}

signed main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int t;
	cin >> t;
	while (t--) solve();


}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3656kb

input:

2
4
4 2 7 1
4
1 1 1 1

output:

3
1 4
2 2
3 1
-1

result:

ok OK 1 yes 1 no (2 test cases)

Test #2:

score: 0
Accepted
time: 12ms
memory: 3596kb

input:

50000
2
3 3
2
2 2
2
3 3
2
2 2
2
3 3
2
3 3
2
1 1
2
1 1
2
1 1
2
2 2
2
2 2
2
3 3
2
2 2
2
1 1
2
3 3
2
1 1
2
1 1
2
1 1
2
3 3
2
1 1
2
1 1
2
3 3
2
2 2
2
3 3
2
3 3
2
2 2
2
1 1
2
3 3
2
2 2
2
2 2
2
3 3
2
3 3
2
1 1
2
1 1
2
1 1
2
3 3
2
3 3
2
1 1
2
1 1
2
3 3
2
2 2
2
2 2
2
2 2
2
1 1
2
1 1
2
2 2
2
2 2
2
1 1
2
3 3
...

output:

1
1 3
1
1 2
1
1 3
1
1 2
1
1 3
1
1 3
1
1 1
1
1 1
1
1 1
1
1 2
1
1 2
1
1 3
1
1 2
1
1 1
1
1 3
1
1 1
1
1 1
1
1 1
1
1 3
1
1 1
1
1 1
1
1 3
1
1 2
1
1 3
1
1 3
1
1 2
1
1 1
1
1 3
1
1 2
1
1 2
1
1 3
1
1 3
1
1 1
1
1 1
1
1 1
1
1 3
1
1 3
1
1 1
1
1 1
1
1 3
1
1 2
1
1 2
1
1 2
1
1 1
1
1 1
1
1 2
1
1 2
1
1 1
1
1 3
1
1 3
...

result:

ok OK 50000 yes 0 no (50000 test cases)

Test #3:

score: -100
Wrong Answer
time: 24ms
memory: 3616kb

input:

50000
2
89846347117873058 89846347117873058
2
416235892302498917 416235892302498917
2
332154513003612985 332154513003612985
2
43960216631774959 43960216631774959
2
353215896487285554 353215896487285554
2
38296945667390613 38296945667390613
2
209150071115726640 209150071115726640
2
48610805835417777 ...

output:

1
1 -732706910
1
1 -1217049499
1
1 236948281
1
1 -2003431697
1
1 -2027597006
1
1 -2105754475
1
1 -1382432976
1
1 907069617
1
1 -1590423279
1
1 -184398503
1
1 1362194955
1
1 -538128596
1
1 -1851726319
1
1 1712060750
1
1 1654165883
1
1 -1342859856
1
1 -1453378331
1
1 401622420
1
1 -664206506
1
1 -2108...

result:

wrong answer Integer parameter [name=x] equals to -732706910, violates the range [1, 89846347117873058] (test case 1)