Submission #1185452

#TimeUsernameProblemLanguageResultExecution timeMemory
1185452asli_bgIzbori (COCI22_izbori)C++20
40 / 110
3088 ms16096 KiB
#include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; #define int long long typedef pair<int,int> pii; typedef vector<int> vi; typedef vector<pii> vii; typedef vector<bool> vb; typedef tree<pii,null_type,less<pii>,rb_tree_tag, tree_order_statistics_node_update> oset; #define fi first #define se second #define pb push_back #define mid (l+r)/2 #define all(x) x.begin(),x.end() #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define cont(x) for(auto el:x) cout<<el<<' ';cout<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define sp <<" "<< #define DEBUG(x) cout<<(#x) sp x<<endl const int INF=1e18; const int MAXN=75; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin>>n; vi a(n+1); set<int> s; FORE(i,1,n+1){ cin>>a[i]; s.insert(a[i]); } int ans=0; for(auto el:s){ //tüm yemekler için yap //DEBUG(el); vi vec(n+1,0); oset cur; FORE(i,1,n+1){ vec[i]=vec[i-1]; if(a[i]==el) vec[i]++; else vec[i]--; cur.insert({vec[i],i}); } //cont(vec); FORE(i,1,n+1){ pii p={vec[i-1],INF}; auto it=cur.size()-cur.order_of_key(p); ans+=it; cur.erase({vec[i],i}); } //DEBUG(ans); } cout<<ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...