Submission #621074

#TimeUsernameProblemLanguageResultExecution timeMemory
621074tinjyuBit Shift Registers (IOI21_registers)C++17
21 / 100
1 ms300 KiB
#include "registers.h" #include <iostream> #include <vector> using namespace std; void construct_instructions(int s, int n, int k, int q) { vector<bool> v(2000); for(int i=0;i<2000;i++) { v[i]=0; } long long int len=1; while(len<n) { len*=2; } for(int i=n;i<len;i++) { for(int j=0;j<k;j++) { v[i*k+j]=1; } } append_store(1,v); append_add(0,0,1); long long int rm=2; while(len>1) { for(int i=0;i<2000;i++) { if((i/k)%rm==0)v[i]=1; else v[i]=0; } append_store(2,v); append_right(1,0,k); append_not(1,1); append_and(0,0,2); append_and(1,1,2); append_add(3,0,1); append_not(2,2); append_print(2); append_print(3); append_and(3,2,3); append_print(3); append_right(3,3,1); int tmp=1; append_print(3); while(tmp<k) { if(tmp*2<=k) { append_right(4,3,tmp); append_add(3,3,4); } else { append_right(4,3,k-tmp); append_or(3,3,4); } tmp*=2; } append_not(1,1); append_print(3); append_and(1,1,3); append_print(1); append_not(3,3); append_print(0); append_and(0,0,3); append_print(3); append_print(0); append_add(0,0,1); len/=2; rm*=2; } return ; }
#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...