#include<stdio.h>

int main(void) {
	char cardtype[4] = { 'S','H','C','D' };				//
	char card[4][13] = {};								//絵柄*数字の2次配列
	char type;											//
	int num = 0, i = 0, j = 0, cardnum;
	printf("太郎が持っているカードの総数:");
	scanf_s("%d", &num);
	getchar();											//改行コードの読み飛ばし
	printf("太郎が持っているカードを１枚ずつ入力してください。\n");
	do{
		printf("spade=S,heart=H,club=C,diamond=D(残り%d枚):", num - i);
		scanf_s("%c", &type, 1);						//絵柄の取得
		scanf_s("%d", &cardnum);						//数字の取得
		getchar();										//改行コードの読み飛ばし
		switch (type) {
		case 'S':
			if (card[0][cardnum - 1] == 1) {			//重複の場合
				printf("重複しています。\n");
				break;
			}
			if (cardnum > 0 && cardnum < 14) {
				card[0][cardnum - 1] = 1;
				i++;
			}
			break;
		case 'H':
			if (card[1][cardnum - 1] == 1) {			//重複の場合
				printf("重複しています。\n");
				break;
			}
			if (cardnum > 0 && cardnum < 14) {
				card[1][cardnum - 1] = 1;
				i++;
			}
			break;
		case 'C':
			if (card[2][cardnum - 1] == 1) {			//重複の場合
				printf("重複しています。\n");
				break;
			}
			if (cardnum > 0 && cardnum < 14) {
				card[2][cardnum - 1] = 1;
				i++;
			}
			break;
		case 'D':
			if (card[3][cardnum - 1] == 1) {			//重複の場合
				printf("重複しています。\n");
				break;
			}
			if(cardnum > 0 && cardnum < 14){
				card[3][cardnum - 1] = 1;
				i++;
			}
			break;
		}
	} while (i != num);									//手持ち枚数分繰り返す
	printf("足りないカードは以下の通りです。\n");
	for (i = 0; i < 4; i++) {
		for (j = 0; j < 13; j++) {
			if (card[i][j] == 0) {
				printf("%c %d\n",cardtype[i],j + 1);
			}
		}
	}
	return 0;
}
