| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1305823 | ayaz | Arranging Shoes (IOI19_shoes) | C++20 | 1093 ms | 12156 KiB |
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;
#define isz(x) (int)x.size()
long long count_swaps(std::vector<int> s) {
vector<int> a = s;
#define int long long
int n = isz(a);
bool ok = true;
for (int i = 0; i < n / 2; i++) {
ok &= (a[i] + a[i + n / 2] == 0);
ok &= (a[i] < 0);
}
if (ok) {
return (n / 2) * (n / 2 - 1) / 2;
}
set<int> st;
for (int i = 0; i < n; i++) st.insert(a[i]);
if (isz(st) == 2) {
int ans = 0;
set<int> pos[2];
for (int i = 0; i < n; i++) {
pos[a[i] < 0 ? 0 : 1].insert(i);
}
for (int i = 0; i < n; i++) {
if (i % 2 == 0 && a[i] > 0) {
auto it = pos[0].upper_bound(i);
ans += *it - i;
swap(a[i], a[*it]);
pos[0].erase(it);
pos[1].erase(pos[1].find(i));
pos[0].insert(i);
pos[1].insert(*it);
continue;
}
if (i % 2 == 1 && a[i] < 0) {
auto it = pos[1].upper_bound(i);
ans += *it - i;
swap(a[i], a[*it]);
pos[1].erase(it);
pos[0].erase(pos[0].find(i));
pos[1].insert(i);
pos[0].insert(*it);
}
}
return ans;
}
if (n == 2) {
return (a[0] > 0);
}
int ans = 0;
for (int i = 0; i < n; i++) {
if (i % 2 == 0 && a[i] > 0) {
int d = 1e9;
for (int j = i + 1; j < n; j++) {
if (a[j] + a[i] == 0) {
d = j;
break;
}
}
ans += (d - i);
for (int j = d; j > i; j--) swap(a[j], a[j - 1]);
continue;
}
if (i % 2 == 1 && (a[i] < 0 || (a[i - 1] + a[i]) != 0)) {
int d = 1e9;
for (int j = i + 1; j < n; j++) {
if (a[j] + a[i - 1] == 0) {
d = j;
break;
}
}
ans += (d - i);
for (int j = d; j > i; j--) swap(a[j], a[j - 1]);
}
}
for (int i = 0; i < n; i += 2) {
ans += (a[i] > 0);
}
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... | ||||
