QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#637873#5420. InscryptionnnkWA 151ms3892kbC++201.6kb2024-10-13 14:16:412024-10-13 14:16:44

Judging History

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

  • [2024-10-13 14:16:44]
  • 评测
  • 测评结果:WA
  • 用时:151ms
  • 内存:3892kb
  • [2024-10-13 14:16:41]
  • 提交

answer

#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
#include<iomanip>
#include<queue>
#include<math.h>
#include<map>
#include<bitset>
#include<numeric>
#include <cstring>
#include<array>
#include <string>  
#include<unordered_set>
using namespace std;
#define int long long
#define endl "\n"
#define mod 1000000007ll
#define IOS  ios::sync_with_stdio(false),cin.tie(nullptr)
#define syy return
const double pi = acos(-1.0);
using ll = long long;
using pii = pair<int, int>;
using vint = vector<int>;
using vll = vector<ll>;
using vvint = vector<vint>;
using vpo = vector<pii>;
using tup = tuple<int, int, int>;
using vbl = vector<bool>;
constexpr int N = 500005, M = 2000006;//开足够的空间 注意无向图的双向边边数*2
constexpr ll inf = 3e18+5000;

void slove() {
	int n; cin >> n;
	vint a(n);
	int tot1 = 0;
	int tot_1=0;
	bool is = 0;
	for (int i = 0; i < n; i++) {
		cin >> a[i];
		if (a[i] == -1)tot1++;
		if (a[i] == 1)tot_1++;
		if (tot1 * 2 > i + 1 and is==0) {
			cout << -1 << endl;
			is = 1;
		}
	}
	if (is) {
		syy;
	}
	int tot0 = n - tot1 - tot_1;
	int tmp = tot1 - tot_1; 
	if (tot0 >= abs(tmp)) {
		if (tmp > 0) {
			tot0 -= tmp;
			tot_1 += tmp;
		}
		else {
			tmp = -tmp;
			tot0 -= tmp;
			tot1 += tmp;
		}
	}
	int x1, y1, x2, y2;
	x1 = x2 = tot_1+1;
	y1 = y2 = tot_1 + 1 - tot1;
	x1 += (tot0 + 1) / 2;
	if (tot0 & 1)y1 += 1;
	int gd = gcd(x1, y1);
	cout << x1 / gd << " " << y1 / gd << endl;
}


signed main()
{
	IOS;
	int T = 1;
	cin >> T;
	while (T--) {
		slove();
	}
	return 0;
}

详细

Test #1:

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

input:

6
7
1 1 1 -1 1 1 -1
4
1 0 -1 0
4
0 -1 -1 0
1
0
2
0 0
1
-1

output:

3 2
3 1
-1
1 1
2 1
-1

result:

ok 6 lines

Test #2:

score: 0
Accepted
time: 151ms
memory: 3584kb

input:

1000000
1
1
1
-1
1
1
1
1
1
1
1
1
1
-1
1
-1
1
0
1
0
1
1
1
0
1
-1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
-1
1
1
1
1
1
-1
1
0
1
1
1
0
1
-1
1
0
1
-1
1
1
1
-1
1
0
1
1
1
1
1
-1
1
0
1
-1
1
-1
1
-1
1
-1
1
0
1
0
1
-1
1
0
1
-1
1
0
1
0
1
0
1
0
1
0
1
-1
1
1
1
0
1
0
1
1
1
0
1
-1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
...

output:

1 1
-1
1 1
1 1
1 1
1 1
-1
-1
1 1
1 1
1 1
1 1
-1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
-1
1 1
1 1
-1
1 1
1 1
1 1
-1
1 1
-1
1 1
-1
1 1
1 1
1 1
-1
1 1
-1
-1
-1
-1
1 1
1 1
-1
1 1
-1
1 1
1 1
1 1
1 1
1 1
-1
1 1
1 1
1 1
1 1
1 1
-1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
-1
-1
1 1
1 1
-1
1 1
1 1
1 1
1 1
-1
1 1
1 1
1 ...

result:

ok 1000000 lines

Test #3:

score: -100
Wrong Answer
time: 63ms
memory: 3656kb

input:

181249
6
1 0 -1 0 1 0
4
1 -1 -1 -1
8
-1 0 0 0 1 -1 1 1
3
0 1 0
6
1 0 -1 1 -1 0
4
1 -1 -1 -1
9
0 1 0 -1 -1 0 -1 0 1
1
-1
3
0 -1 1
5
0 0 1 -1 1
3
1 -1 0
6
-1 0 0 -1 0 1
8
1 -1 -1 -1 0 1 -1 0
2
0 0
3
-1 1 0
3
0 -1 -1
10
0 1 0 -1 1 1 0 -1 1 0
3
1 0 0
9
1 -1 1 -1 0 -1 0 0 0
3
0 1 0
3
-1 0 0
7
-1 0 -1 -1 ...

output:

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

result:

wrong answer 26th lines differ - expected: '5 3', found: '6 5'