[sicily] 1003. hit or miss
来源:互联网 发布:金属材料冲击实验数据 编辑:程序博客网 时间:2024/06/02 13:22
#include <iostream>#include <queue>using namespace std;int main() { int n; while(cin >> n) { for (int i = 0; i < n; ++i) { int numOfPlayer; cin >> numOfPlayer; queue<int> deck[11]; int temp; for (int j = 0; j < 52; ++j) { cin >> temp; deck[0].push(temp); } int counter[11] = {0}; //counter for ecery player int lastCard[11] = {0}; //last cast card int countTimes[11] = {0}; //count times for each player. //If countTimes reach 13, then the game is unwinable bool winFlag = false; int leftCard = 52; //leaving cards int playerIndex = 0; while(!winFlag) { if(deck[playerIndex].empty()) { playerIndex = (playerIndex+1) % numOfPlayer; //next player continue; } counter[playerIndex]++; countTimes[playerIndex]++; lastCard[playerIndex] = deck[playerIndex].front(); //get the top card deck[playerIndex].pop(); if(counter[playerIndex] == lastCard[playerIndex]) { //math deck[playerIndex+1].push(lastCard[playerIndex]); //give math card to next player countTimes[playerIndex] = 0; if(playerIndex+1 == numOfPlayer) { //if the dummy player leftCard--; if(leftCard == 0) { //all card have been casted winFlag = true; break; } } } else { deck[playerIndex].push(lastCard[playerIndex]); //put no-math card in bottom } if(countTimes[playerIndex] > deck[playerIndex].size()*13) { winFlag = false; break; } if(counter[playerIndex] == 13) counter[playerIndex] = 0; playerIndex = (playerIndex+1)%numOfPlayer; //no matter math or not, each player can match only once each time } cout << "Case " << i+1 << ":"; if(winFlag) { for (int j = 0; j < numOfPlayer; ++j) { cout << ' ' << lastCard[j]; } cout << endl; } else cout << " unwinnable" << endl; } } return 0;}
0 0
- Sicily 1003. Hit or Miss
- sicily--1003. Hit or Miss
- sicily 1003. Hit or Miss
- Sicily 1003. Hit or Miss
- sicily 1003. Hit or Miss
- Sicily 1003. Hit or Miss
- [sicily] 1003. hit or miss
- sicily 1003. Hit or Miss
- Sicily 1003. Hit or Miss
- [sicily online]1003. Hit or Miss
- sicily 1003 Hit or Miss
- 1003. Hit or Miss
- 1003. Hit or Miss
- siciy 1003. Hit or Miss
- 1003: Hit or Miss
- 1003 Hit or Miss
- soj1003. Hit or Miss
- soj.1003 hit or miss
- .net的强引用和弱引用
- JQuery 表单常见操作
- xdu 1068 Clinton’s beliefs
- android进程间通信学习
- CENTOS5.5下使用Roundcube搭建 Webmail
- [sicily] 1003. hit or miss
- ofstream和ifstream详细用法
- C语言之结构数组图书管理
- 兔子-Android 项目中values-v11 values-v14
- 如何利用Spring Cloud构建起自我修复型分布式系统
- Jquery选择器
- SCOM2012升级授权License
- Bitmap结构详解
- mahout类似的开源项目