uva 127 "Accordian" Patience
来源:互联网 发布:物理地址和mac地址 编辑:程序博客网 时间:2024/04/28 01:47
模拟牌移动的过程就行了,注意要使用嵌套的stl库里面的对象list< stack<struct node> >,注意输出的时候pile和piles的区别。
#include <stdio.h>#include <list>#include <stack>using namespace std;struct node{char value;char color;};list< stack<struct node> > l;void func(){list< stack<struct node> >::iterator it_cur, it_pre;bool f;struct node n;while(1){f = false;for(it_cur=++l.begin(); it_cur!=l.end(); it_cur++){it_pre = it_cur;it_pre --;if(it_pre== l.begin())goto l1;it_pre --;if(it_pre== l.begin())goto l1;it_pre --;if(it_cur->top().value==it_pre->top().value || it_cur->top().color==it_pre->top().color){n.value = it_cur->top().value;n.color = it_cur->top().color;it_pre->push(n);it_cur->pop();if(it_cur->size() == 0)l.erase(it_cur);f = true;break;}l1:it_pre = it_cur;it_pre --;if(it_cur->top().value==it_pre->top().value || it_cur->top().color==it_pre->top().color){n.value = it_cur->top().value;n.color = it_cur->top().color;it_pre->push(n);it_cur->pop();if(it_cur->size() == 0)l.erase(it_cur);f = true;break;}}if(!f)break;}if(l.size() >= 2)printf("%d piles remaining:", l.size());elseprintf("1 pile remaining:");for(it_cur=l.begin(); it_cur!=l.end(); it_cur++){printf(" %d", it_cur->size());}printf("\n");}int main(void){char v, c;int i;char temp;struct node n;stack<struct node> s;list<struct node>::iterator it;//FILE* file = fopen("input.dat", "r");while(1){l.clear();for(i=1; i<=52; i++){fscanf(stdin, "%c", &v);fscanf(stdin, "%c", &c);if(v == '#')goto end;fscanf(stdin, "%c", &temp);n.value = v;n.color = c;while(!s.empty()) s.pop();s.push(n);l.push_back(s);}func();/*for(it=l.begin(); it!=l.end(); it++)printf("%c%c ", it->value, it->color);printf("\n");*/}end:return 0;}
- UVa 127 "Accordian" Patience
- uva 127 - "Accordian" Patience
- uva 127 - "Accordian" Patience
- uva-127 - "Accordian" Patience
- UVa 127 - "Accordian" Patience
- UVA 127 "Accordian" Patience
- UVa 127 "Accordian" Patience
- uva 127 - "Accordian" Patience
- UVA 127 - Accordian Patience
- UVa 127 - "Accordian" Patience
- UVa 127--``Accordian'' Patience
- UVA 127 "Accordian" Patience
- UVA 127 Accordian'' Patience
- UVa 127: "Accordian" Patience
- uva 127 - Accordian Patience
- UVa 127 - "Accordian" Patience
- uva 127 "Accordian" Patience
- UVa 127 - "Accordian" Patience
- 关于完美洗牌问题的若干思考
- 对ContentProvider中getType(Uri uri)和android.intent.category.DEFAULT的理解
- java中字符串的比较
- linux小实验(4)---线程取消
- hdu 2963 Bone Collector II
- uva 127 "Accordian" Patience
- 修改wamp默认网站目录
- 20131001安博培训第二十三天
- windows创建.htaccess文件的种方法
- python字典 switch语句
- oracle各版本 官网下载网址
- Hibernate继承映射
- Python源码之初始化(五)-initmain()
- 最新简单标签JSP页面控制详解