QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#519092#9176. Non-Interactive NimzrzringWA 35ms3828kbC++201.6kb2024-08-14 16:17:252024-08-14 16:17:25

Judging History

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

  • [2024-08-14 16:17:25]
  • 评测
  • 测评结果:WA
  • 用时:35ms
  • 内存:3828kb
  • [2024-08-14 16:17:25]
  • 提交

answer

#include <bits/stdc++.h>

using i64 = long long;

#define A2 std::array<i64, 2>
#define lowbit(x) ((x) & -(x))
#define NO return (void)(std::cout << "NO" << endl)
#define YES return (void)(std::cout << "YES" << endl)
#define Fast_IOS std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0)

const i64 mod = 998244353;

template <class T> T lg(T x) {return (T)log10(x);}
template <class T> T log(T x) {return (T)log2(x);}
template <class T> T abs(T x) {return x < 0 ? -x : x;}
template <class T> T mysqrt(T x) {return std::floor(sqrtl(x));}
template <class T> T MOD(T &x, i64 p = mod) {return x = (x % p + p) % p;}
template <class T> T MOD(T &&x, i64 p = mod) {return x = (x % p + p) % p;}
template <class T1, class T2> T1 getbit(T1 x, T2 t) {return x >> t & 1ll;}

class WORK {
public:
	int N;

	WORK() {}

	void solve() {
		int n;
		std::cin >> n;
		std::vector<i64> a(n + 1);
		for (int i = 1; i <= n; i++) {
			std::cin >> a[i];
		}
		std::vector<A2> ans;
		for (int k = 59; k >= 0; k--) {
			std::vector<int> bit;
			for (int i = 1; i <= n; i++) {
				if ((a[i] >> k & 1) == 1) {
					bit.push_back(i);
				}
			}
			if (bit.size() > 2) {
				std::cout << -1 << '\n';
				return;
			}
			if (bit.empty()) continue;
			if (a[bit[0]] < a[bit[1]]) {
				std::swap(bit[0], bit[1]);
			}
			ans.push_back({bit[0], a[bit[1]]});
			a[bit[0]] ^= a[bit[1]];
			a[bit[1]] = 0;
		}
		std::cout << ans.size() << '\n';
		for (auto [x, y] : ans) {
			std::cout << x << ' ' << y << '\n';
		}
	}
};

int main() {
	Fast_IOS;
	WORK work;
	int T = 1;
	std::cin >> T;
	while (T--) {
		work.solve();
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3828kb

input:

2
4
4 2 7 1
4
1 1 1 1

output:

3
3 4
3 2
3 1
-1

result:

ok OK 1 yes 1 no (2 test cases)

Test #2:

score: 0
Accepted
time: 24ms
memory: 3804kb

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: 0
Accepted
time: 35ms
memory: 3576kb

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 89846347117873058
1
1 416235892302498917
1
1 332154513003612985
1
1 43960216631774959
1
1 353215896487285554
1
1 38296945667390613
1
1 209150071115726640
1
1 48610805835417777
1
1 211544111448330513
1
1 25910837432700249
1
1 332285940128117259
1
1 350363936612994860
1
1 243778347549648401
1
1 21...

result:

ok OK 50000 yes 0 no (50000 test cases)

Test #4:

score: 0
Accepted
time: 17ms
memory: 3572kb

input:

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

output:

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

result:

ok OK 33333 yes 0 no (33333 test cases)

Test #5:

score: -100
Wrong Answer
time: 23ms
memory: 3612kb

input:

33333
3
1 7 6
3
5 1 4
3
7 3 4
3
6 4 2
3
5 3 6
3
5 3 6
3
7 4 3
3
1 2 3
3
4 3 7
3
2 4 6
3
1 6 7
3
4 5 1
3
1 5 4
2
4 4
2
6 6
3
4 7 3
3
4 2 6
3
1 3 2
3
3 4 7
2
2 2
3
7 3 4
3
2 7 5
3
7 6 1
3
7 3 4
3
4 3 7
3
2 4 6
3
7 1 6
3
3 1 2
3
5 3 6
3
2 6 4
3
6 1 7
3
1 2 3
3
2 1 3
3
5 2 7
3
2 4 6
3
6 3 5
3
5 7 2
2
5 ...

output:

2
2 6
1 1
2
1 4
1 1
2
1 4
1 3
2
1 4
1 2
2
3 5
2 3
2
3 5
2 3
2
1 4
1 3
2
3 2
1 1
2
3 4
2 3
2
3 4
1 2
2
3 6
1 1
2
2 4
2 1
2
2 4
1 1
1
1 4
1
1 6
2
2 4
2 3
2
3 4
2 2
2
2 2
1 1
2
3 4
1 3
1
1 2
2
1 4
1 3
2
2 5
1 2
2
1 6
1 1
2
1 4
1 3
2
3 4
2 3
2
3 4
1 2
2
1 6
1 1
2
1 2
1 1
2
3 5
2 3
2
2 4
1 2
2
3 6
2 1
2
...

result:

wrong answer game has not ended yet (test case 5)