Submission #442206

#TimeUsernameProblemLanguageResultExecution timeMemory
442206daniel920712Bit Shift Registers (IOI21_registers)C++17
0 / 100
1 ms588 KiB
#include "registers.h"
#include <vector>
using namespace std;
vector < bool > re;
void construct_instructions(int s, int n, int k, int q)
{
    int i,j;
    re.push_back(1);

    for(i=1;i<2000;i++) re.push_back(0);
    append_store(50,re);
    for(i=1;i<=n;i++)
    {
        append_move(2,0);
        append_left(2,2,2000-k);
        append_right(2,2,2000-k);
        append_right(0,0,k);
        append_print(2);
        if(i==1) append_move(1,2);
        else
        {
            append_xor(3,1,2);
            append_print(3);
            append_move(31,2);

            for(j=0;j<k;j++)
            {
                append_move(6,3);
                append_left(6,6,k-j-1);
                append_right(6,6,k-j-1);



                append_move(11,2);
                append_left(11,11,k-j-1);
                append_right(11,11,k-j-1);

                //append_print(11);


                append_move(10,6);
                append_not(8,7);
                append_and(8,8,50);
                append_and(6,6,8);

                append_xor(21,6,7);
                append_not(21,21);
                append_and(21,21,50);
                append_or(21,21,7);

                append_and(22,6,11);

                append_or(7,7,6);


                append_print(21);
                append_print(22);
                append_print(9);

                append_and(24,21,9);
                append_move(23,24);

                append_not(24,21);
                append_and(24,24,22);
                append_or(9,23,24);

                append_print(9);

                append_and(10,9,10);
                append_right(10,10,k-j-1);
                append_add(12,12,10);


                append_right(3,3,1);
                append_right(2,2,1);
            }
            append_print(12);
            append_print(31);
            append_xor(1,31,12);

        }
    }
    append_move(0,1);
    append_print(0);

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...