제출 #1237099

#제출 시각아이디문제언어결과실행 시간메모리
1237099Ghulam_JunaidArranging Shoes (IOI19_shoes)C++20
45 / 100
268 ms146604 KiB
#include <bits/stdc++.h> #include "shoes.h" // #include "grader.cpp" using namespace std; typedef long long ll; const int N = 2e5 + 10; int fen[N]; void add(int p){ for (int i = p + 1; i < N; i += i & -i) fen[i] += 1; } int get(int p){ int res = 0; for (int i = p + 1; i > 0; i -= i & -i) res += fen[i]; return res; } ll count_swaps(vector<int> s) { int n = s.size(); map<int, queue<int>> inds; for (int i = 0; i < n; i ++) inds[s[i]].push(i); bool mark[n] = {}; ll ans = 0; for (int cur = 0; cur < n; cur ++){ if (mark[cur]) continue; int val = s[cur]; int ind = inds[-val].front(); inds[-val].pop(); int del = get(ind) - get(cur); ans += ind - cur - 1 - del + (s[cur] > 0); mark[ind] = 1; add(ind); } return ans; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...