<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: 10205 code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Mon, 08 Sep 2008 03:56:33 GMT</pubDate>
    <description>DZone Snippets: 10205 code</description>
    <item>
      <title>A solution for the "Stack 'em Up" problem</title>
      <link>http://snippets.dzone.com/posts/show/5356</link>
      <description>A solution for the "Stack 'em Up" problem.&lt;br /&gt;&lt;br /&gt;Problem description:&lt;br /&gt;&lt;a href="http://icpcres.ecs.baylor.edu/onlinejudge/external/102/10205.html"&gt;http://icpcres.ecs.baylor.edu/onlinejudge/external/102/10205.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Author: &lt;a href="http://joanatrindade.wikidot.com"&gt;Joana Matos Fonseca da Trindade&lt;/a&gt;&lt;br /&gt;Date: 2008.04.05&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/* &lt;br /&gt; * Solution for "Stack 'em Up" problem.&lt;br /&gt; * UVa ID: 10205&lt;br /&gt; */&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;&lt;br /&gt;#define NVALUES 13&lt;br /&gt;#define NSUITS 4&lt;br /&gt;#define NCARDS 52&lt;br /&gt;#define NSHUFFLES 100&lt;br /&gt;#define WSIZE 9&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;char values[NVALUES][WSIZE] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"};&lt;br /&gt;char suits[NSUITS][WSIZE] = {"Clubs", "Diamonds", "Hearts", "Spades"};&lt;br /&gt;int shuffles[NSHUFFLES][NCARDS];&lt;br /&gt;int deck[NCARDS];&lt;br /&gt;&lt;br /&gt;/* read all dealer shuffles */&lt;br /&gt;void read_shuffles(int n_shuff) {&lt;br /&gt;	for(int i=0; i&lt;n_shuff; i++) {&lt;br /&gt;		for (int j=0; j&lt;NCARDS; j++) {&lt;br /&gt;			cin &gt;&gt; shuffles[i][j];&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* shuffle the deck with one of the known shuffles */&lt;br /&gt;void shuffle_deck(int s_id) {&lt;br /&gt;	int tmpdeck[NCARDS];&lt;br /&gt;	for (int i=0; i&lt;NCARDS; i++) {&lt;br /&gt;		tmpdeck[i] = deck[shuffles[s_id][i] - 1];&lt;br /&gt;	}&lt;br /&gt;	for (int i=0; i&lt;NCARDS;i++) {&lt;br /&gt;		deck[i] = tmpdeck[i];&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* main */&lt;br /&gt;int main (int argc, const char *argv[]) {&lt;br /&gt;	int nc; /* number of cases */&lt;br /&gt;	int ns;	/* number of shuffles */&lt;br /&gt;	int s; /* current shuffle */&lt;br /&gt;		&lt;br /&gt;	cin &gt;&gt; nc;&lt;br /&gt;		&lt;br /&gt;	for (int i=0; i&lt;nc; i++) {	&lt;br /&gt;		cin &gt;&gt; ns;&lt;br /&gt;			&lt;br /&gt;		/* initialize deck */&lt;br /&gt;		for (int p=0; p&lt;NCARDS; p++) {&lt;br /&gt;			deck[p] = p;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		/* read list of known shuffles */&lt;br /&gt;		read_shuffles(ns);&lt;br /&gt;		&lt;br /&gt;		/* shuffle deck */&lt;br /&gt;		for (int j=0; j&lt;ns; j++) {&lt;br /&gt;			cin &gt;&gt; s;&lt;br /&gt;			shuffle_deck(s - 1);&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		/* print deck */&lt;br /&gt;		for (int k=0; k&lt;NCARDS; k++) {&lt;br /&gt;			cout &lt;&lt; values[deck[k] % NVALUES] &lt;&lt; " of " &lt;&lt; suits[deck[k] / NVALUES] &lt;&lt; endl;&lt;br /&gt;		}&lt;br /&gt;		if (i &lt; (nc - 1)) {&lt;br /&gt;			cout &lt;&lt; endl;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 14 Apr 2008 00:29:21 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5356</guid>
      <author>jmftrindade (Joana M. F. da Trindade)</author>
    </item>
  </channel>
</rss>
