This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<stdio.h>
int n,m;
int b[20];
int cmd[420][4];
int ans[420];
int c[20];
int d[20];
void f(int x){
if(x==n){
int i;
for(i=0;i<n;i++){
d[i]=c[i];
}
for(i=0;i<m;i++){
if(cmd[i][0]==0){
d[cmd[i][1]]=(d[cmd[i][2]]+d[cmd[i][3]])%4;
}
if(cmd[i][0]==1){
d[cmd[i][1]]=d[cmd[i][2]]^d[cmd[i][3]];
}
if(cmd[i][0]==2){
d[cmd[i][1]]=(d[cmd[i][2]]+cmd[i][3])%4;
}
if(cmd[i][0]==3){
d[cmd[i][1]]=d[cmd[i][2]]^cmd[i][3];
}
}
for(i=0;i<n;i++){
ans[i]+=d[i];
ans[i]%=4;
}
}
else{
for(c[x]=0;c[x]<4;c[x]++){
if(c[x]==b[x])continue;
f(x+1);
}
}
}
int main(){
int i,j;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
scanf("%d",&b[i]);
}
for(i=0;i<m;i++){
scanf("%d%d%d%d",&cmd[i][0],&cmd[i][1],&cmd[i][2],&cmd[i][3]);
}
f(0);
for(i=0;i<n;i++){
printf("%d ",ans[i]%4);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |