Submission #893681

# Submission time Handle Problem Language Result Execution time Memory
893681 2023-12-27T09:08:29 Z vjudge1 Izbori (COCI22_izbori) C++17
25 / 110
3000 ms 7484 KB
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
#include <set>
#include <map>
#include <cstring>
#include <string>
#include <cmath>
#include <cassert>
#include <ctime>
#include <algorithm>
#include <sstream>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <cstdlib>
#include <cstdio>
#include <iterator>
#include <functional>
#include <unordered_set>
#include <unordered_map>
#include <stdio.h>
#include <bitset>
#include <cstdint>
#include <cassert>
#include <functional>
#include <complex>
#include <climits>
#include <random>
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx2,popcnt,lzcnt,abm,bmi,bmi2,fma,tune=native")
 
using namespace std;
 
#define pb push_back
#define F first
#define S second
#define ll long long
#define ull unsigned long long
#define all(x) x.begin(), x.end() 
#define speed ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL)
const int mod = (int) 1e9 + 7;
const int N = (int) 2e5 + 1, bruh = 450;
 
ll a[N], n, k;
ll mp[N * 2];
map<int, int> cnt;
int cnt1[N];
 
signed main(){
   	speed;
   	cin >> n;
    vector<pair<int, int>> v;
   	for(int i = 1; i <= n; i++){
   		cin >> a[i];
        v.pb({a[i], i});
   	} 
    sort(all(v));
    int prev = -1, cur = 0;
    for(auto [x, y] : v){
        if(x != prev){
            ++cur;
            prev = x;
            a[y] = cur;
        }
        else a[y] = cur;
    }
    for(int i = 1; i <= n; i++){
        cnt[a[i]]++;
    }
   	ll ans = 0;
   	for(auto [x, sz] : cnt){
   		if(sz > bruh){
            memset(mp, 0, sizeof(mp));
	        ll cur = 0, act = 0;
	        ans = (1LL * (n * (n + 1))) / 2LL;
	        for(ll i = 1; i <= n; i++){
		        if(a[i] == x) cur--;
		        else cur++;
		        mp[cur + n]++;
	        }
	        cur = 0;
	        for(ll i = 1; i <= n; i++){
		        ans -= mp[act + n];
		        if(a[i] == x){
			        cur--;
			        act--;
		        }
		        else{
			        cur++;
			        act++;
		        }
		        mp[cur + n]--;
	        }	
        }
   	}
   	for(int i = 1; i <= n; i++){
        memset(cnt1, 0, sizeof(cnt1));
   		int lst = -1, lstA = -1;
   		for(int j = i; j <= n; j++){
   			if((j - i + 1) > 2 * bruh) break;
   			if(a[j] == lstA) lst++;
   			++cnt1[a[j]];
   			int sz = (j - i) + 1;
   			if(lst > (sz / 2) && cnt[lstA] <= bruh) ans++;
   			else if(cnt1[a[j]] > (sz / 2) && cnt[a[j]] <= bruh){
   				ans++;
   				lst = cnt1[a[j]];
   				lstA = a[j];
   			}
   		}
   	}
   	cout << ans;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4700 KB Output is correct
2 Correct 1 ms 4700 KB Output is correct
3 Correct 5 ms 4700 KB Output is correct
4 Correct 5 ms 4696 KB Output is correct
5 Correct 4 ms 4700 KB Output is correct
6 Correct 4 ms 4700 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4700 KB Output is correct
2 Correct 1 ms 4700 KB Output is correct
3 Correct 5 ms 4700 KB Output is correct
4 Correct 5 ms 4696 KB Output is correct
5 Correct 4 ms 4700 KB Output is correct
6 Correct 4 ms 4700 KB Output is correct
7 Correct 12 ms 4788 KB Output is correct
8 Correct 2 ms 4700 KB Output is correct
9 Correct 26 ms 4744 KB Output is correct
10 Correct 26 ms 4740 KB Output is correct
11 Correct 30 ms 4696 KB Output is correct
12 Correct 26 ms 4696 KB Output is correct
13 Correct 26 ms 4744 KB Output is correct
14 Correct 25 ms 4696 KB Output is correct
15 Correct 26 ms 4768 KB Output is correct
16 Correct 32 ms 4700 KB Output is correct
17 Correct 28 ms 4700 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2081 ms 7380 KB Output is correct
2 Correct 2703 ms 7380 KB Output is correct
3 Correct 1579 ms 6100 KB Output is correct
4 Correct 2642 ms 7384 KB Output is correct
5 Correct 2662 ms 7384 KB Output is correct
6 Correct 2823 ms 7460 KB Output is correct
7 Correct 2949 ms 7484 KB Output is correct
8 Execution timed out 3042 ms 7380 KB Time limit exceeded
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4700 KB Output is correct
2 Correct 1 ms 4700 KB Output is correct
3 Correct 5 ms 4700 KB Output is correct
4 Correct 5 ms 4696 KB Output is correct
5 Correct 4 ms 4700 KB Output is correct
6 Correct 4 ms 4700 KB Output is correct
7 Correct 12 ms 4788 KB Output is correct
8 Correct 2 ms 4700 KB Output is correct
9 Correct 26 ms 4744 KB Output is correct
10 Correct 26 ms 4740 KB Output is correct
11 Correct 30 ms 4696 KB Output is correct
12 Correct 26 ms 4696 KB Output is correct
13 Correct 26 ms 4744 KB Output is correct
14 Correct 25 ms 4696 KB Output is correct
15 Correct 26 ms 4768 KB Output is correct
16 Correct 32 ms 4700 KB Output is correct
17 Correct 28 ms 4700 KB Output is correct
18 Correct 2081 ms 7380 KB Output is correct
19 Correct 2703 ms 7380 KB Output is correct
20 Correct 1579 ms 6100 KB Output is correct
21 Correct 2642 ms 7384 KB Output is correct
22 Correct 2662 ms 7384 KB Output is correct
23 Correct 2823 ms 7460 KB Output is correct
24 Correct 2949 ms 7484 KB Output is correct
25 Execution timed out 3042 ms 7380 KB Time limit exceeded
26 Halted 0 ms 0 KB -