I got WA,too
Posted: Mon Oct 18, 2004 3:57 pm
[code][c]
#include <stdio.h>
char n_club[] = "Clubs";
char n_diamond[] = "Diamonds";
char n_heart[] = "Hearts";
char n_spade[] = "Spades";
char *suit_names[4] = { n_club, n_diamond, n_heart, n_spade };
char n_2[] = "2";
char n_3[] = "3";
char n_4[] = "4";
char n_5[] = "5";
char n_6[] = "6";
char n_7[] = "7";
char n_8[] = "8";
char n_9[] = "9";
char n_10[] = "10";
char n_J[] = "Jack";
char n_Q[] = "Queen";
char n_K[] = "King";
char n_A[] = "Ace";
char *card_names[13] = { n_2, n_3, n_4, n_5, n_6, n_7, n_8,
n_9, n_10, n_J, n_Q, n_K, n_A };
int shuffle[100][52];
void reset_cards( int * cards )
{
int i;
for ( i=1;i<53;i++ )
cards[i] = i;
}
void copy_cards( int *dest, int *src )
{
int i;
for ( i=1;i<53;i++ )
dest[i] = src[i];
}
int main( int argc, char *argv[] )
{
int n_case;
int n_shuffles;
int cmd;
int i,j;
int cards_A[53],cards_B[53];
// FILE *si,*so;
// si = freopen( "input.txt","r",stdin);
// so = freopen( "output.txt","w",stdout);
fscanf(stdin,"%d",&n_case);
while ( n_case )
{
fscanf(stdin,"%d",&n_shuffles);
reset_cards( cards_A );
j = 0;
while ( j < n_shuffles )
{
for ( i=0;i<52;i++ )
{
fscanf(stdin,"%d",&cmd);
shuffle[j][i] = cmd;
}
j++;
}
while ( (cmd = getc(stdin)) != EOF )
{
if ( (j=getc(stdin))=='\n')
break;
else
ungetc(j,stdin);
fscanf(stdin,"%d",&cmd);
for ( i=1;i<53;i++ )
cards_B[i] = cards_A[shuffle[cmd-1][i-1]];
copy_cards( cards_A, cards_B );
}
for ( i=1;i<53;i++ )
printf("%s of %s\n",card_names[(cards_A[i]-1)%13],
suit_names[(cards_A[i]-1)/13] );
if ( --n_case > 0 )
putchar('\n');
}
// fclose(so);
// fclose(si);
return 0;
}[/code][/c]
Well, I see nothing wrong...but...I got WAs... :-?
#include <stdio.h>
char n_club[] = "Clubs";
char n_diamond[] = "Diamonds";
char n_heart[] = "Hearts";
char n_spade[] = "Spades";
char *suit_names[4] = { n_club, n_diamond, n_heart, n_spade };
char n_2[] = "2";
char n_3[] = "3";
char n_4[] = "4";
char n_5[] = "5";
char n_6[] = "6";
char n_7[] = "7";
char n_8[] = "8";
char n_9[] = "9";
char n_10[] = "10";
char n_J[] = "Jack";
char n_Q[] = "Queen";
char n_K[] = "King";
char n_A[] = "Ace";
char *card_names[13] = { n_2, n_3, n_4, n_5, n_6, n_7, n_8,
n_9, n_10, n_J, n_Q, n_K, n_A };
int shuffle[100][52];
void reset_cards( int * cards )
{
int i;
for ( i=1;i<53;i++ )
cards[i] = i;
}
void copy_cards( int *dest, int *src )
{
int i;
for ( i=1;i<53;i++ )
dest[i] = src[i];
}
int main( int argc, char *argv[] )
{
int n_case;
int n_shuffles;
int cmd;
int i,j;
int cards_A[53],cards_B[53];
// FILE *si,*so;
// si = freopen( "input.txt","r",stdin);
// so = freopen( "output.txt","w",stdout);
fscanf(stdin,"%d",&n_case);
while ( n_case )
{
fscanf(stdin,"%d",&n_shuffles);
reset_cards( cards_A );
j = 0;
while ( j < n_shuffles )
{
for ( i=0;i<52;i++ )
{
fscanf(stdin,"%d",&cmd);
shuffle[j][i] = cmd;
}
j++;
}
while ( (cmd = getc(stdin)) != EOF )
{
if ( (j=getc(stdin))=='\n')
break;
else
ungetc(j,stdin);
fscanf(stdin,"%d",&cmd);
for ( i=1;i<53;i++ )
cards_B[i] = cards_A[shuffle[cmd-1][i-1]];
copy_cards( cards_A, cards_B );
}
for ( i=1;i<53;i++ )
printf("%s of %s\n",card_names[(cards_A[i]-1)%13],
suit_names[(cards_A[i]-1)/13] );
if ( --n_case > 0 )
putchar('\n');
}
// fclose(so);
// fclose(si);
return 0;
}[/code][/c]
Well, I see nothing wrong...but...I got WAs... :-?