Submission #1283206

#TimeUsernameProblemLanguageResultExecution timeMemory
1283206abc123Bit Shift Registers (IOI21_registers)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; void append_move(int t, int y); void append_store(int t, vector<int> v); void append_and(int t, int x, int y); void append_or(int t, int x, int y); void append_xor(int t, int x, int y); void append_not(int t, int x); void append_left(int t, int x, int p); void append_right(int t, int x, int p); void append_add(int t, int x, int y); void solve(int n, int k) { // Step 1: Extract bits of each number into separate register for(int i = 0; i < n; i++) { append_right(10 + i, 0, i * k); // Extract number i } // Step 2: Bubble sort using bitwise minimum for(int i = 0; i < n; i++) { for(int j = 0; j < n - 1; j++) { int x_reg = 10 + j; int y_reg = 10 + j + 1; int temp = 20 + j; // Compute min using: y + ((x - y) & sign_extend((x-y) >> (k-1))) append_xor(temp, x_reg, y_reg); // x XOR y append_not(temp, temp); // NOT (x XOR y) gives x == y ? 0 : -1 append_and(temp, x_reg, temp); // Extract bits where diff // For simplicity in a real implementation: // Use the standard bitwise min formula adapted to k bits // Move smaller to j position append_move(x_reg, temp); } } // Step 3: Store sorted results back to r[0] for(int i = 0; i < n; i++) { append_left(0, 10 + i, i * k); } } int main() { int n, k; cin >> n >> k; solve(n, k); return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccBGcCUV.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccYOTpdt.o:registers.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccBGcCUV.o: in function `main':
grader.cpp:(.text.startup+0x171): undefined reference to `construct_instructions(int, int, int, int)'
collect2: error: ld returned 1 exit status