WA on #35求助
查看原帖
WA on #35求助
857323
linxuanrui楼主2023/3/3 18:11

rt,

#pragma GCC optmize(2,3,"Ofast","inline")
#include<bits/stdc++.h>
#define int long long
#define max(a,b) ((a) > (b) ? (a) : (b))
#define min(a,b) ((a) < (b) ? (a) : (b))
#define abs(a) ((a) > 0 ? (a) : 0 - (a))
#define in(a,b,c) ((a) >= (b) && (a) <= (c))
#define isint(a) (floor(a) == a)
#define endl '\n'
using namespace std;
const int mod = 10007;
int n,x,num0,num1,last;
bool first = true;
vector<int> v[mod];
void insert(int x) {
	v[x % mod].push_back(x);
}
bool find(int x) {
	for(int i = 0; i < v[x % mod].size(); i++) {
		if(v[x % mod][i] == x)return true;
	}
	return false;
}
void check() {
	int tmp = (last == 0 ? num0 : num1);
	last = 1 - last;
	if(x == 0)num0++;
	else num1++;
	if(n % tmp != 0) {
		cout << "NO";
		exit(0);
	} else {
		if(!find(tmp) && !first) {
			cout << "NO";
			exit(0);
		} else {
			first = false;
			insert(tmp);
		}
	}
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	for(int i = 1; i <= n; i++) {
		cin >> x;
		if(i == 1)last = x;
		if(x == last) {
			if(x == 0)num0++,num1 = 0,last = 0;
			else num1++,num0 = 0,last = 1;
		} else {
			check();
		}
	}
	check();
	cout << "YES";
}
2023/3/3 18:11
加载中...