Submission #1003782

#TimeUsernameProblemLanguageResultExecution timeMemory
1003782vjudge1Ekoeko (COCI21_ekoeko)C++17
20 / 110
25 ms16088 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); map<char,set<int>> pos; for(int i=0; i<2*n; i++){ if(mp[s[i]]<cnt[s[i]]/2) mp[s[i]]++, cnt1++, trans[i]=cnt1, pos[s[i]].insert(i+1); } for(int i=0; i<2*n; i++) if(!trans[i]){ trans[i] = *pos[s[i]].begin()+n; pos[s[i]].erase(pos[s[i]].begin()); } // 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'; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:25:14: warning: unused variable 'cnt2' [-Wunused-variable]
   25 |  int cnt1=0, cnt2=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...
#Verdict Execution timeMemoryGrader output
Fetching results...