QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#519088#9176. Non-Interactive NimzrzringWA 22ms3872kbC++201.8kb2024-08-14 16:14:152024-08-14 16:14:16

Judging History

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

  • [2024-08-14 16:14:16]
  • 评测
  • 测评结果:WA
  • 用时:22ms
  • 内存:3872kb
  • [2024-08-14 16:14:15]
  • 提交

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];
		}
		if (n == 2) {
			std::cout << 1 << '\n';
			std::cout << 1 << ' ' << a[1] << '\n';
			return;
		}
		std::vector<std::vector<i64>> bit(60);
		for (int i = 1; i <= n; i++) {
			for (int j = 0; j < 60; j++) {
				if ((a[i] >> j & 1ll) == 1ll) {
					bit[j].push_back(i);
				}
			}
		}
		std::vector<A2> ans;
		for (int i = 59; i >= 0; i--) {
			if (bit[i].empty()) continue;
			if (bit[i].size() > 2) {
				std::cout << -1 << '\n';
				return;
			}
			if (a[bit[i][0]] < a[bit[i][1]]) {
				std::swap(bit[i][0], bit[i][1]);
			}
			ans.push_back({bit[i][0], a[bit[i][1]]});
		}
		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;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 11ms
memory: 3580kb

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: 20ms
memory: 3680kb

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: 3536kb

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
2 1
2
2 2
2 1
1
1 1
2
3 2
3 1
2
1 2
1 1
2
3 2
3 1
1
1 1
1
1 3
1
1 3
2
3 2
3 1
2
2 2
2 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
3 1
2
2 2
2 1
2
2 2
2 1
2
2 2
2 1
2
3 2
3 1
2
3 2
3 1
2
1 2
1 1
2
2 2
2 1
2
2 2
2 1
2
2 2
2 1
1
1 1
1
1 3
2
1 2
1 1
1
1 3
2
2 2
2 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: 22ms
memory: 3584kb

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:

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

result:

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