| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 525966 | Hanksburger | Arranging Shoes (IOI19_shoes) | C++17 | 43 ms | 15836 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
vector<int> pos[100005];
int a[100005], cnt;
long long f(int l, int r)
{
if (l==r)
return 0;
int mid=(l+r)/2, index=(l+r)/2+1;
long long res=f(l, mid)+f(mid+1, r);
for (int i=l; i<=mid; i++)
{
while (index<=r && a[i]>a[index])
index++;
res+=index-mid-1;
}
sort(a+l, a+r+1);
return res;
}
long long count_swaps(vector<int> v)
{
for (int i=0; i<v.size(); i++)
if (v[i]>0)
pos[v[i]].push_back(i);
for (int i=1; i<=v.size(); i++)
reverse(pos[i].begin(), pos[i].end());
for (int i=0; i<v.size(); i++)
{
if (v[i]<0)
{
cnt+=2;
a[i]=cnt-1;
a[pos[-v[i]][pos[-v[i]].size()-1]]=cnt;
pos[-v[i]].pop_back();
}
}
return f(0, cnt-1);
}
Compilation message (stderr)
| # | 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... | ||||
