제출 #737739

#제출 시각아이디문제언어결과실행 시간메모리
737739a_aguiloIzbori (COCI22_izbori)C++14
0 / 110
3060 ms2096 KiB
#include<bits/stdc++.h>

using namespace std;

int N;
int MOD = 1e9 + 7;
vector<int> tastes;

int main(){
	cin >> N;
	tastes = vector<int>(N);
	for(int i = 0; i < N; ++i) cin >> tastes[i];
	long long int ans = 0;
	unordered_map<int, int> frequency;
	frequency.reserve(N);
	int previousWinner = -1;
	for(int i = 0; i < N; ++i){
		if(i){
			frequency[tastes[i]]--;
		}
		previousWinner = tastes[i];
		ans++;
		for(int j = i+1; j < N; ++j){
			frequency[tastes[j]]++;
			if(frequency[tastes[j]] > frequency[previousWinner])previousWinner = tastes[j];
			int dist = j - i +1;
			if(2*frequency[previousWinner] > dist) ans++;
		}
		ans = ans%MOD;
	}
	cout << ans << endl;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...