Advertisement
juanjo12x

UVA_11459_Snakes_Ladders

Jul 31st, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. #include <cstdio>
  2.  
  3. const int die_max = 6, nr_squares = 100, nr_players_max = 1000000;
  4.  
  5. int players[nr_players_max]; // players[i] is the current square # of i-th player
  6. int squares[nr_squares + die_max];
  7.   // squares[i] is the next square to advance for i-th (i > 0) square
  8.  
  9. int main()
  10. {
  11.   int tc;
  12.   scanf("%d", &tc);
  13.   while (tc--) {
  14.     int i, j, k;
  15.     for (i = 1; i < nr_squares; i++)
  16.       squares[i] = i;
  17.     for ( ; i < nr_squares + die_max; i++)
  18.       squares[i] = nr_squares;
  19.     int a, b, c;
  20.     scanf("%d %d %d", &a, &b, &c);
  21.     for (i = 0; i < a; i++)
  22.       players[i] = 1;
  23.     for (i = 0; i < b; i++) {
  24.       scanf("%d %d", &j, &k);
  25.       squares[j] = k;
  26.     }
  27.     bool game_over = false;
  28.     for (i = 0; i < c; i++) {
  29.       scanf("%d", &j);
  30.       if (!game_over) {
  31.         int& p = players[i % a];
  32.         if ((p = squares[p + j]) == nr_squares)
  33.           game_over = true;
  34.       }
  35.     }
  36.     for (i = 0; i < a; i++)
  37.       printf("Position of player %d is %d.\n", i + 1, players[i]);
  38.   }
  39.   return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement