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