Submission #15368

#TimeUsernameProblemLanguageResultExecution timeMemory
15368skeksk91쿼터너리 컴퓨터 (kriii3_Z)C++98
31 / 126
4000 ms1092 KiB
#include <stdio.h> #include <stack> #include <string.h> #include <string> #include <vector> #include <queue> #include <limits.h> #include <algorithm> #define ll long long int n, m, v[20], f[20], page[20], inst[500], ret[500], a[500], b[500], u[500]; int plus[4][4] ={{0,1,2,3},{1,2,3,0},{2,3,0,1},{3,0,1,2}}; int xor2[4][4] = {{0,1,2,3},{1,0,3,2},{2,3,0,1},{3,2,1,0}}; void func(int here){ if(here==n){ //for(int i = 0 ; i < n; i++){ // printf("%d ", v[i]); //} //printf("\n"); for(int i = 0; i < n; i++){ u[i] = v[i]; } for(int i = 0; i < m; i++){ if(inst[i]==0){ u[ret[i]] = plus[u[a[i]]][u[b[i]]]; } else if(inst[i]==1){ u[ret[i]] = xor2[u[a[i]]][u[b[i]]]; } else if(inst[i]==2){ u[ret[i]] = plus[u[a[i]]][b[i]]; } else{ u[ret[i]] = xor2[u[a[i]]][b[i]]; } } for(int i = 0; i < n; i++){ page[i] += u[i]; } return; } for(int i = 0; i < 4; i++){ if(f[here] != i){ v[here] = i; func(here+1); } } } int main(){ scanf("%d%d", &n,&m); for(int i = 0 ; i < n; i++) scanf("%d", &f[i]); for(int i = 0; i < m; i++){ scanf("%d%d%d%d", &inst[i], &ret[i], &a[i], &b[i]); } func(0); for(int i = 0; i < n; i++){ printf("%d ",page[i]%4); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...