Submission #870924

#TimeUsernameProblemLanguageResultExecution timeMemory
870924hungntEkoeko (COCI21_ekoeko)C++14
110 / 110
8 ms2188 KiB
#include<bits/stdc++.h> using namespace std; const int N = 200005; int n; string s; queue<int> q[26]; int cnt[26], dem[26], BIT[N]; void update(int id) { for(; id; id -= id & -id) BIT[id]++; } int get(int id) { int ans = 0; for(; id <= n; id += id & -id) ans += BIT[id]; return ans; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> s; for(char &c : s) { c -= 'a'; cnt[c]++; } int nn = n; s = ' ' + s; n <<= 1; int d = 0; long long ans = 0; int c; int x; for(int i = 1; i <= n; i++) { c = s[i]; dem[c]++; if(dem[c] <= (cnt[c] >> 1)) { x = ++d; q[c].push(d + nn); } else { x = q[c].front(); q[c].pop(); } ans += get(x); update(x); } cout << ans; return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:34:13: warning: array subscript has type 'char' [-Wchar-subscripts]
   34 |         cnt[c]++;
      |             ^
#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...