# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
399572 | galca | MalnaRISC (COI21_malnarisc) | C++14 | 2 ms | 332 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 <iostream>
#include <vector>
using namespace std;
int main() {
int N;
cin >> N;
int n = N;
while (n & (n - 1)) {
n++;
}
vector<int> regs(n);
for (int i=0; i<n; i++) {
regs[i] = i+1;
}
vector<int> stage;
vector<int> r1;
vector<int> r2;
int curr_stage = 0;
for (int k = 2; k < (N + N - 1); k *= 2) {
for (int j = k / 2; j > 0; j /= 2) {
for (int i = 0; i < n; i++) {
int ip = i ^ j;
if (ip > i) {
int reg1, reg2;
if ((i ^ k) < i) {
reg1 = regs[i];
reg2 = regs[ip];
}
else {
reg1 = regs[ip];
reg2 = regs[i];
}
if (reg2 > N) {
int tmp = regs[i];
regs[i] = regs[ip];
regs[ip] = tmp;
}
else {
if (reg1 <= N) {
stage.push_back(curr_stage);
r1.push_back(reg2);
r2.push_back(reg1);
//cout << "CMPSWP R" << reg2 << " R" << reg1 << endl;
}
}
}
}
++curr_stage;
}
}
cout << curr_stage << endl;
curr_stage = 0;
for (int i = 0; i < r1.size(); i++) {
if (stage[i] != curr_stage) {
cout << endl;
}
curr_stage = stage[i];
cout << "CMPSWP R" << r1[i] << " R" << r2[i] << " ";
}
return 0;
}
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... |
# | 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... |