Отримання знань

дистанційна підтримка освіти школярів


Игра "Сет"
http://acm.pku.edu.cn/JudgeOnline/problem?id=1053

   Входные данные

   Выходные данные

   Пример входных данных

   Пример выходных данных

   Анализ условия и обсуждение идеи решения

   Пример решения на C++:

#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);
}

 

Попередня Зміст Наступна
В системі: гості - (1); користувачі - (0)