参考自http://www.cnblogs.com/maqiang/archive/2012/05/02/2479760.html

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
#include <vector>
using namespace std;
struct st
{
char ch[3];
};
bool judge(st c,st d)
{
if(c.ch[0]==d.ch[0]||c.ch[1]==d.ch[1])
return true;
return false;
}
int main()
{
vector<stack<st> >piles;
st s1;
int cur=0;
while(cin>>s1.ch)
{
if(s1.ch[0]=='#') break;
cur++;
stack<st>s;
s.push(s1);
piles.push_back(s);
if(cur==52)
{
int n=52;
while(true)
{
int i;
for(i=1;i!=piles.size();i++)
{
if(i>2&&judge(piles[i].top(),piles[i-3].top()))
{
piles[i-3].push(piles[i].top());
piles[i].pop();
break;
}
if(i>0&&judge(piles[i].top(),piles[i-1].top()))
{
piles[i-1].push(piles[i].top());
piles[i].pop();
break;
}
}
if(i==piles.size()) break;
else if(piles[i].empty())
{
piles.erase(piles.begin()+i);
}
}
n=piles.size();
if(n==1) cout<<n<<" pile remaining: ";
else
cout<<n<<" piles remaining: ";
cout<<piles[0].size();
for(int i=1;i<n;i++)
cout<<" "<<piles[i].size();
cout<<endl;
piles.clear();
cur=0;
}
}
return 0;
}

最新文章

  1. salesforce 零基础学习(十八)WorkFlow介绍及用法
  2. [ linux ] pad远程
  3. html5游戏引擎phaser官方示例学习
  4. 阻止Infinitescroll.js无限滚动加载页面解决方法
  5. loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
  6. hdu 1879 继续畅通工程(最小生成树,基础)
  7. (2015年郑州轻工业学院ACM校赛题) J 堆
  8. C#获取Excel中所有的Sheet名称
  9. 使用javascript开发2048
  10. webservice中采用协议Http,它是指什么意思
  11. MPU6050程序(转)
  12. Mqtt服务器搭建
  13. Eclipse中tomcat配置
  14. RBAC权限管理系统
  15. 【网址】ILSpy,C# .net/dot net的反编译工具
  16. iview table中使用Poptip
  17. Javascript高级编程学习笔记(54)—— DOM2和DOM3(6)范围选择
  18. map映射巧用 A-B Problems
  19. Pandas 基础(1) - 初识及安装 yupyter
  20. java学习书单

热门文章

  1. Appium AndroidKeyCode
  2. poj 2488 A Knight&amp;#39;s Journey(dfs+字典序路径输出)
  3. caffe环境配置2
  4. Oracle 10g RAC (linux) ASM 共享存储的管理详解
  5. Linux Yum 命令使用举例
  6. Linux下Python编译安装
  7. HD-ACM算法专攻系列(11)——Exponentiation
  8. 浏览器输入一个url的过程,以及加载完html文件和js文件的标志
  9. Android集成第三方微信登录
  10. centos下nginx配置