UVA127 - "Accordian" Patience
2015-02-27 15:36
471 查看
#include<iostream> #include<malloc.h> using namespace std; //#define NULL 0 typedef struct Node{ char data[3]; struct Node*down; } Node,*NodeList; int PiPei(char*a,char*b){ if(a[0]==b[0]||a[1]==b[1])return 1; return 0; } void QianYi(Node**L,int a,int &b){ int i=a; Node*p; for(i=a;i<b-1;i++) L[i]=L[i+1]; b--; } void fun(Node**L,int & last){ int s=0; last=52; Node * p,*q; while(s<last){ if(s>2&&PiPei(L[s]->data,L[s-3]->data)){ p=L[s-3]; L[s-3]=L[s]; L[s]=L[s]->down; L[s-3]->down=p; if(!L[s])QianYi(L,s,last); s=s-3; } else if(s>0&&PiPei(L[s]->data,L[s-1]->data)){ p=L[s-1]; L[s-1]=L[s]; L[s]=L[s]->down; L[s-1]->down=p; if(!L[s])QianYi(L,s,last); s=s-1; } else s++; } } void FuWei(Node**L,int last){ int i=0,s=last; Node*p; for(i=0;i<last;i++){ p=L[i]->down; while(p){ L[s]=p; p=p->down; L[s]->down=NULL; s++; } L[i]->down=NULL; } } int main(){ char pai[3]; int i=0,last,a[52]; Node*L[52],*p; for(i=0;i<52;i++){ L[i]=(Node*)malloc(sizeof(Node)); L[i]->down=NULL; } cin>>pai; while(pai[0]!='#'){ L[0]->data[0]=pai[0];L[0]->data[1]=pai[1];L[0]->data[2]='\0'; for(i=1;i<52;i++) cin>>L[i]->data; fun(L,last); if(last>1){ cout<<last<<" piles remaining:"; for(i=0;i<last;i++){ p=L[i];a[i]=0;int num=0; while(p){ num++; p=p->down; } cout<<" "<<num; } } else cout<<"1 pile remaining: 52"; cout<<endl; FuWei(L,last); cin>>pai; } return 0; }
相关文章推荐
- UVA 127 - "Accordian" Patience---wa 了许久,错误原因见注释!
- uva127 - "Accordian" Patience
- UVa:127 "Accordian" Patience
- uva127 "Accordian" Patience poj1214 模拟
- UVA 127 "Accordian" Patience
- UVA 127 - "Accordian" Patience---用STL做的(TLE超时)
- uva 127 poj 1214 "Accordian" Patience (栈STL运用)
- UVA - 127 "Accordian" Patience
- UVa 127 - "Accordian" Patience POJ 1214 链表题解
- UVa 127 "Accordian" Patience
- UVa 127 "Accordian" Patience (模拟链表&栈)
- uva-127 - "Accordian" Patience
- Uva - 127 - "Accordian" Patience
- uva127 "Accordian" Patience
- UVa 127 - "Accordian" Patience POJ 1214 链表题解
- uva 127 "Accordian" Patience(手风琴纸牌)
- uva 127 - "Accordian" Patience
- UVA 127 "Accordian" Patience
- UVa 127 - "Accordian" Patience
- "Accordian" Patience UVA 127 (”手风琴“牌游戏)