Submission #1985111
Source Code Expand
/* (a&b)|(c&d)|(e&f) (a|c|e)&(a|c|f)&(a|d|e)&(a|d|f)&(b|c|e)&(b|c|f)&(b|d|e)&(b|d|f) */ #include<stdio.h> #include<algorithm> using namespace std; char str[3][10000]; char fi[10000]; char se[10000]; char la[10000]; int sz=0; int t[26]; int solve(int a){ if(a==sz)return 1; if((fi[a]&32)&&(t[fi[a]-'a']==1))return solve(a+1); if(!(fi[a]&32)&&(t[fi[a]-'A']==0))return solve(a+1); if((se[a]&32)&&(t[se[a]-'a']==1))return solve(a+1); if(!(se[a]&32)&&(t[se[a]-'A']==0))return solve(a+1); if((la[a]&32)&&(t[la[a]-'a']==1))return solve(a+1); if(!(la[a]&32)&&(t[la[a]-'A']==0))return solve(a+1); if((fi[a]^32)==se[a])return solve(a+1); if((la[a]^32)==se[a])return solve(a+1); if((fi[a]^32)==la[a])return solve(a+1); bool ff=false; bool sf=false; bool lf=false; if(!~t[(fi[a]|32)-'a']){ if(fi[a]>='a')t[fi[a]-'a']=1; else t[fi[a]-'A']=0; if(solve(a+1))return 1; if(fi[a]>='a')t[fi[a]-'a']=0; else t[fi[a]-'A']=1; ff=true; } if(!~t[(se[a]|32)-'a']){ if(se[a]>='a')t[se[a]-'a']=1; else t[se[a]-'A']=0; if(solve(a+1))return 1; if(se[a]>='a')t[se[a]-'a']=0; else t[se[a]-'A']=1; sf=true; } if(!~t[(la[a]|32)-'a']){ if(la[a]>='a')t[la[a]-'a']=1; else t[la[a]-'A']=0; if(solve(a+1))return 1; if(la[a]>='a')t[la[a]-'a']=0; else t[la[a]-'A']=1; lf=true; } if(ff)t[(fi[a]|32)-'a']=-1; if(sf)t[(se[a]|32)-'a']=-1; if(lf)t[(la[a]|32)-'a']=-1; return 0; } int main(){ int a; while(scanf("%d",&a),a){ for(int i=0;i<3;i++)scanf("%s",str[i]); sz=a*8; for(int i=0;i<a;i++){ for(int j=0;j<8;j++){ if(j&1){ fi[i*8+j]=str[0][i*3+1]; }else fi[i*8+j]=str[0][i*3+2]; if(j&2){ se[i*8+j]=str[1][i*3+1]; }else se[i*8+j]=str[1][i*3+2]; if(j&4){ la[i*8+j]=str[2][i*3+1]; }else la[i*8+j]=str[2][i*3+2]; } } for(int i=0;i<26;i++)t[i]=-1; int res=solve(0); if(res==0){ printf("-1\n"); }else{ int ans=0; for(int i=0;i<26;i++)if(t[i]==1)ans++; printf("%d",ans); for(int i=0;i<26;i++)if(t[i]==1)printf(" %c",'A'+i); printf("\n"); } } }
Submission Info
Submission Time | |
---|---|
Task | J - Magical Switches |
User | tozangezan |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2558 Byte |
Status | AC |
Exec Time | 2985 ms |
Memory | 256 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:60:5: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] while(scanf("%d",&a),a){ ^ ./Main.cpp:61:47: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] for(int i=0;i<3;i++)scanf("%s",str[i]); ^
Judge Result
Set Name | all | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
all | Merged |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
Merged | AC | 2985 ms | 256 KB |