#include <fstream.h>
int oldDeck[52] = {0};
int newDeck[52] = {0};
void sortDeck()
{
int i;
for ( i=0; i<52; i++)
{
oldDeck[i ] = i;
newDeck[i ] = 0;
}
}
void moveDeck()
{
int i;
for (i=0; i<52; i++)
{
oldDeck[i ] = newDeck[i ];
}
}
bool checkDeckOrder()
{
int i;
bool retVal = false;
for (i=0; i<52; i++)
{
if (oldDeck[i ] != i)
{
retVal = true;
}
}
return retVal;
}
void shuffle1()
{
int i;
for (i=0; i<26; i++)
{
newDeck[2*i] = oldDeck[i ];
newDeck[2*i+1] = oldDeck[i+26];
}
moveDeck();
}
void shuffle2()
{
int i;
for (i=0; i<26; i++)
{
newDeck[2*i] = oldDeck[i+26];
newDeck[2*i+1] = oldDeck[i ];
}
moveDeck();
}
void main()
{
bool stopFlag = true;
int count = 0;
sortDeck();
while (stopFlag)
{
count++;
shuffle1();
//shuffle2();
stopFlag = checkDeckOrder();
}
cerr << count << endl;
}