Submission #1001284

#TimeUsernameProblemLanguageResultExecution timeMemory
1001284mostafa133Ekoeko (COCI21_ekoeko)C++14
0 / 110
0 ms348 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> typedef long long ll; typedef long double ld; using namespace std; using namespace __gnu_pbds; using ordered_set = tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update>; #define all(x) x.begin(), x.end() #define pll pair<ll, ll> #define fast ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0) const ll mod = 998244353; ld fpow(ll a, ll b, ll m = -1) { if (m != -1) a %= m; ll res = 1; while (b > 0) { if (b % 2 == 1) { if (m != -1) res = res * a % m; else { res *= a; } } a = a * a; if (m != -1) { a %= m; } b /= 2; } return res; } int main() { fast; // freopen("pails.in", "r", stdin); // freopen("pails.out", "w", stdout); ll t = 1; // cin >> t; while (t--) { ll n; cin >> n; string s; cin >> s; string t = s.substr(n, n); vector<set<ll>> v(200); for (int i = 0; i < n; i++) { v[t[i]].insert(i); } ordered_set os; ll ans = 0; for (int i = 0; i < n; i++) { if (v[s[i]].empty()) continue; os.insert(*v[s[i]].begin()); ans += i - os.order_of_key(*v[s[i]].begin()); v[s[i]].erase(v[s[i]].begin()); } cout << ans << '\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...