# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
419031 | jacquesamsel | Arranging Shoes (IOI19_shoes) | C++14 | 1132 ms | 1048580 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;
#define vint vector<int>
#define vvint vector<vint>
void print_vint(vint a) {
for (auto x : a) cout << x << " ";
cout << endl;
}
void print_vvint(vvint a) {
cout << "-----" << endl;
for (int i = 0; i < a.size(); i++) {
print_vint(a[i]);
}
cout << "-----" << endl;
}
vint swap(vint& in, int pos) {
vint a = vint(in.begin(), in.end());
swap(a[pos], a[pos+1]);
return a;
}
bool vint_done(vint a) {
for (int i = 0; i < (a.size())/2; i++) {
if (a[i*2] > 0 || a[i*2] != -a[i*2+1]) return false;
}
return true;
}
long long count_swaps(vector<int> s) {
vvint book;
vvint newBook;
book.push_back(s);
long long counter = 0;
if (vint_done(s)) return 0;
while (true) {
for (auto b : book) {
// print_vint(b);
// if (vint_done(b)) {
// return counter;
// }
// cout << "based off";
// print_vint(b);
for (int i = 0; i < s.size()-1; i++) {
vint state = swap(b, i);
// print_vint(state);
if (vint_done(state)) {
// cout << "CORRECT";
// print_vint(state);
return counter+1;
}
newBook.push_back(state);
}
}
book = newBook;
newBook = {};
// cout << "ADD COUNTER" << endl;
counter++;
}
}
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... |