| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1341587 | Jawad_Akbar_JJ | Arranging Shoes (IOI19_shoes) | C++20 | 130 ms | 179264 KiB |
#include <iostream>
#include <queue>
using namespace std;
const int Mx = 1<<18;
int seen[Mx], ft[Mx];
queue<int> Q[Mx];
void Add(int i, int v){
for (; i; i -= i & -i)
ft[i] += v;
}
int get(int i, int ans = 0){
for (; i < Mx; i += i & -i)
ans += ft[i];
return ans;
}
long long count_swaps(vector<int> v){
long long n = v.size() / 2, ans = 0;
for (int i=0;i<n+n;i++){
int s = abs(v[i]), j;
if (Q[s].size() == 0 or v[Q[s].front()] == v[i]){
Add(i+1, 1);
Q[s].push(i);
}
else{
j = Q[s].front(), Q[s].pop();
ans += i - j - (v[i] > 0);
Add(j+1, -1);
ans -= get(j+1);
}
}
return ans;
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
