Submission #1082351

#TimeUsernameProblemLanguageResultExecution timeMemory
1082351SiliconSquaredBit Shift Registers (IOI21_registers)C++17
10 / 100
1 ms348 KiB
#include "registers.h" using namespace std; #include <vector> #define B 2000 void construct_instructions(int s, int n, int k, int q) { if (s==1){return;} vector<bool> v; vector<bool> blank; //seperate numbers v.resize(B,0); blank=v; for (int i=0;i<k;i++){v[i]=1;} append_store(n+1,v); for (int i=0;i<n;i++){ append_move(i+1,0); if (i!=0){ append_right(i+1,i+1,i*k); } if (i!=n-1){ append_and(i+1,i+1,n+1); } } for (int i=1;i<=n;i++){append_print(i);} v=blank; append_store(0,v); //do operations append_not(n+2,0); for (int i=k-1;i>=0;i--){ v=blank; v[i]=1; append_store(n+1,v); append_store(n+3,v); for (int j=0;j<n;j++){ append_and(n+3,n+3,j+1); } append_add(0,0,n+3); //extend mask if (i!=0){ append_right(n+3,n+3,i); } append_add(n+3,n+3,n+2); for (int j=0;j<n;j++){ //and with op and extend mask append_and(n+4,n+1,j+1); append_right(n+4,n+4,i); append_add(n+4,n+4,n+2); append_not(n+4,n+4); append_and(n+4,n+4,n+3); append_or(j+1,j+1,n+4); } 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...