题意 给你洗牌顺序求洗牌后的结果
题目连接点击打开链接
#include <stdio.h>
struct list
{
int num[54];
}order[200];
void solve ( )
{
int n, i, j, card_1[54], card_2[54], m;
scanf ( "%d", &n );
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= 52; j++ )
scanf ( "%d", &order[i].num[j] );
for ( i = 1; i <= 52; i++ )
card_1[i] = i;
for ( i = 0; i < n; i++ )
{
scanf ( "%d", &m );
for ( j = 1; j <= 52; j++ )
card_2[j] = card_1[order[m].num[j]];
for ( j = 1; j <= 52; j++ )
card_1[j] = card_2[j];
}
for ( i = 1; i <= 52; i++ )
{
int flag = card_1[i]% 13, x = card_1[i];
if ( flag == 0 )
printf ( "Ace" );
else
if ( flag == 12 )
printf ( "King" );
else
if ( flag == 11 )
printf ( "Queen" );
else
if ( flag == 10 )
printf ( "Jack" );
else
printf ( "%d", flag + 1 );
if ( x <= 13 )
printf ( " of %s\n", "Clubs" );
else
if ( x <= 26 )
printf ( " of %s\n", "Diamonds" );
else
if ( x <= 39 )
printf ( " of %s\n", "Hearts" );
else
printf ( " of %s\n", "Spades" );
}
}
int main ( )
{
int t;
scanf ( "%d", &t );
while ( t-- )
{
solve ( );
if ( t )
puts ( "" );
}
return 0;
}