Submission #1163614

#TimeUsernameProblemLanguageResultExecution timeMemory
1163614dzuizzEkoeko (COCI21_ekoeko)C++20
0 / 110
1 ms1860 KiB
#include<bits/stdc++.h> using namespace std; //#define DEBUG #define int long long const int maxn=200010; int ft[maxn],n; void add(int idx,int v){ for(++idx;idx<=2*n;idx+=idx&-idx) ft[idx]+=v; } int sum(int idx){ int ret=0; for(++idx;idx>0;idx-=idx&-idx) ret+=ft[idx]; return ret; } int sum(int l,int r){ return sum(r)-sum(l-1); } int f(string s,string t){ memset(ft,0,sizeof ft); stack<int> st[26]; for(int i=(int)s.size()-1;i>=0;--i){ st[s[i]-'a'].push(i); } int ret=0; for(int i=0;i<(int)t.size();++i){ int x=st[t[i]-'a'].top(); st[t[i]-'a'].pop(); int nx=x+sum(x); if(nx>i){ ret+=nx-i; } add(i,1),add(x,-1); } return ret; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string s; cin>>n>>s; // Subtask 3 string a=s.substr(0,n),b=s.substr(n,n); cout<<min(f(a,b),f(b,a))<<'\n'; 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...
#Verdict Execution timeMemoryGrader output
Fetching results...