제출 #1330331

#제출 시각아이디문제언어결과실행 시간메모리
1330331secondaccountmaybeIzbori (COCI22_izbori)C++20
0 / 110
17 ms7556 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n;
ll a[200005];
map<ll,vector<ll>>m;
ll f()
{
	ll s=0;
	for(auto const& [x,v]:m)
	{
		ll c=0;
		vector<ll>p;
		p.push_back(0);
		ll l=-1;
		for(ll i:v)
		{
			ll d=i-l-1;
			if(d>0)
			{
				for(ll j=0;j<d;j++)
				{
					c--;
					p.push_back(c);
				}
			}
			c++;
			p.push_back(c);
			l=i;
		}
		ll d=n-l-1;
		if(d>0)
		{
			for(ll j=0;j<d;j++)
			{
				c--;
				p.push_back(c);
			}
		}
		ll m=0;
		for(ll i:p)
		{
			if(i<m)
			{
				m=i;
			}
		}
		vector<ll> b(p.size()*2+1,0);
		for(ll i:p)
		{
			ll k=i-m;
			for(ll j=k;j>0;j-=(j&-j))
			{
				s+=b[j];
			}
			for(ll j=k+1;j<b.size();j+=(j&-j))
			{
				b[j]++;
			}
		}
	}
	return s;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	ll n;
	cin>>n;
	for(ll i=0;i<n;i++)
	{
		cin>>a[i];
		m[a[i]].push_back(i);
	}
	cout<<f()<<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...