Thứ Ba, 8 tháng 1, 2019

UVa 10205 - Stack 'em Up (card game)

Link:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=14&page=show_problem&problem=1146
Sol:
#include <cstdio>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
// Are stored [num % 13][num / 13]
string cardFirst[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace" };
string cardSecond[] = {"Clubs", "Diamonds", "Hearts", "Spades"};
string temp;
char separator[2];
separator[0] = separator[1] = '\0';
int shuffles[101][52], numShufflesKnown, numShufflesDone, orderOfShuffles[101], T, pos;
scanf("%d", &T);
while (T--)
{
printf("%s", separator);
separator[0] = '\n';
scanf("%d", &numShufflesKnown);
for (int i = 0; i < numShufflesKnown; ++i)
{
for (int j = 0; j < 52; ++j)
{
scanf("%d", &shuffles[i][j]);
--shuffles[i][j];
}
}
cin.ignore();
numShufflesDone = 0;
getline(cin, temp);
while (temp != "")
{
orderOfShuffles[numShufflesDone++] = atoi(temp.c_str()) - 1;
getline(cin, temp);
}
for (int i = 0; i < 52; ++i)
{
pos = i;
for (int c = numShufflesDone - 1; c >= 0; --c)
pos = shuffles[orderOfShuffles[c]][pos];
printf("%s of %s\n", cardFirst[pos % 13].c_str(), cardSecond[pos / 13].c_str());
}
}
}

Không có nhận xét nào:

Đăng nhận xét

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...