http://acm.pku.edu.cn/JudgeOnline/problem?id=1053
Код:
#include<iostream> #include<string.h> using namespace std; char card[1000][20]; bool judge (int i,int j,int k) { int p; for(p=0;p<4;p++) if(!( card[i][p]==card[j][p]&&card[i][p]==card[k][p]&&card[j][p]==card[k][p]|| card[i][p]!=card[j][p]&&card[i][p]!=card[k][p]&&card[j][p]!=card[k][p] )) return false; return true; } int main() { int n; do{ n=0; cin.getline(card[n++],100); if(!cin)break; while(strlen(card[n-1])==4) cin.getline(card[n++],100); n--; int i,j,k,num; num=0; cout<<"CARDS: "; for(i=0;i<n;i++) cout<<' '<<card[i]; cout<<endl; cout<<"SETS: "; for(i=0;i<n;i++) for(j=i+1;j<n;j++) for(k=j+1;k<n;k++) { if(judge(i,j,k)) { num++; if (num>1) cout<<" "; cout<<num<<". "<<card[i]<<' '<<card[j]<<' '<<card[k]<<endl; } } if(num==0) {cout<<"*** None Found ***"<<endl; } cout<<endl; }while(cin); }