# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
974508 | rahidilbayramli | Arranging Shoes (IOI19_shoes) | C++17 | 77 ms | 134996 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 "shoes.h"
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define ll long long
#define ld long double
#define vl vector<ll>
#define vi vector<int>
#define pii pair<int, int>
#define pll pair<ll, ll>
#define all(v) v.begin(), v.end()
#define pb push_back
#define f first
#define s second
using namespace std;
using namespace __gnu_pbds;
typedef tree<pll, null_type, less<pll>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
const ll sz = 1e5+5;
stack<ll> st1[sz], st2[sz];
long long count_swaps(vector<int> s) {
ll ans = 0, i;
for(i = 0; i < s.size(); i++)
{
if(s[i] > 0)
{
if(st1[s[i]].size() == 0)
st2[s[i]].push(i);
else
{
ll f = st1[s[i]].top();
st1[s[i]].pop();
ans += (i - f - 1);
}
}
else
{
if(st2[-s[i]].size() == 0)
st1[-s[i]].push(i);
else
{
ll f = st2[-s[i]].top();
st2[-s[i]].pop();
ans += (i - f);
}
}
}
return ans;
}
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... |