Submission #1003779

#TimeUsernameProblemLanguageResultExecution timeMemory
1003779vjudge1Ekoeko (COCI21_ekoeko)C++17
10 / 110
17 ms4124 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pb push_back const int maxn = 2e5+5; int bit[maxn]; void upd(int x){ for(; x<maxn; x+=x&-x) bit[x]++; } int query(int x){ int rt=0; for(; x>0; x-=x&-x) rt+=bit[x]; return rt; } signed main(){ int n; cin >> n; string s; cin >> s; map<char,int> mp, cnt; for(char c : s) cnt[c]++; int cnt1=0, cnt2=0; vector<int> arr1, arr2; vector<int> trans(2*n); for(int i=0; i<2*n; i++){ if(mp[s[i]]<cnt[s[i]]/2) mp[s[i]]++, cnt1++, trans[i]=cnt1; else cnt2++, trans[i] = n+cnt2; } // for(int x : trans) cout << x << " "; // cout << endl; int ans=0; for(int i=0; i<2*n; i++){ ans += i-query(trans[i]-1); upd(trans[i]); } cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...