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