Submission #15441

#TimeUsernameProblemLanguageResultExecution timeMemory
15441progressive쿼터너리 컴퓨터 (kriii3_Z)C++14
31 / 126
4000 ms1092 KiB
#include<cstdio> int S[20]; int ban[20]; int mem[20]; int ans[20]; int w[500],x[500],y[500],z[500]; int xorarr[4][4]= { {0,1,2,3}, {1,0,3,2}, {2,3,0,1}, {3,2,1,0} }; void addv(int x,int y,int z) { mem[x]=(mem[y]+mem[z])%4; } void addc(int x,int y,int z) { mem[x]=(mem[y]+z)%4; } void xorv(int x,int y,int z) { mem[x]=xorarr[mem[y]][mem[z]]; } void xorc(int x,int y,int z) { mem[x]=xorarr[mem[y]][z]; } void run(int a,int b,int c,int d) { if(a==0) addv(b,c,d); if(a==1) xorv(b,c,d); if(a==2) addc(b,c,d); if(a==3) xorc(b,c,d); } int main() { int N,M; scanf("%d%d",&N,&M); for(int i=0;i<N;i++) scanf("%d",ban+i); for(int i=0;i<M;i++) scanf("%d%d%d%d",w+i,x+i,y+i,z+i); int calc=1; for(int i=0;i<N;i++) calc*=3; for(int i=0;i<calc;i++) { { int x=i; for(int j=0;j<N;j++) { mem[j]=x%3; x/=3; if(mem[j]>=ban[j]) mem[j]++; } } for(int j=0;j<M;j++) run(w[j],x[j],y[j],z[j]); for(int j=0;j<N;j++) ans[j]=(ans[j]+mem[j])%4; } for(int i=0;i<N;i++) printf("%d ",ans[i]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...