wikioi3258 梭哈游戏 模拟

来源:互联网 发布:光线cms论坛 编辑:程序博客网 时间:2024/05/02 02:50
#include <cstdio>#include <algorithm>using namespace std;struct rec{int n,f;} a[6],b[6];int ma,mb;bool operator <(rec a,rec b){return (a.n>b.n)||((a.n==b.n)&&(a.f>b.f));}void swap(rec a[],int x,int y){rec tmp=a[x]; a[x]=a[y]; a[y]=tmp;}int calc(rec a[]){int i;if ((a[1].n==14)&&(a[2].n==5)&&(a[3].n==4)&&(a[4].n==3)&&(a[5].n==2))for (i=1;i<=5;i++) a[i].n=6-i;bool flag=true;for (i=1;i<5;i++)    if ((a[i].f!=a[i+1].f)||(a[i].n!=a[i+1].n+1))    {    flag=false; break;    }if (flag) return 10;flag=true;for (i=1;i<4;i++)    if (a[i].n!=a[i+1].n)    {    flag=false; break;    }if (flag) return 20;flag=true;for (i=2;i<5;i++)    if (a[i].n!=a[i+1].n)    {    flag=false; break;    }if (flag) return 21;if ((a[1].n==a[2].n)&&(a[3].n==a[4].n)&&(a[4].n==a[5].n)) return 31;if ((a[1].n==a[2].n)&&(a[2].n==a[3].n)&&(a[4].n==a[5].n)) return 30;flag=true;for (i=1;i<5;i++)    if (a[i].f!=a[i+1].f)    {    flag=false; break;    }if (flag) return 40;flag=true;for (i=1;i<5;i++)    if (a[i].n!=a[i+1].n+1)    {    flag=false; break;    }if (flag) return 50;if ((a[1].n==a[2].n)&&(a[2].n==a[3].n)) return 60;if ((a[2].n==a[3].n)&&(a[3].n==a[4].n)) return 61;if ((a[3].n==a[4].n)&&(a[4].n==a[5].n)) return 62;if ((a[1].n==a[2].n)&&(a[3].n==a[4].n)) return 70;if ((a[1].n==a[2].n)&&(a[4].n==a[5].n)) return 71;if ((a[2].n==a[3].n)&&(a[4].n==a[5].n)) return 72;for (i=1;i<5;i++)    if (a[i].n==a[i+1].n) return 80+i-1;return 90;}int judge(rec a[]){int ret=calc(a);if (ret==21){swap(a,1,5);sort(a+1,a+5);}if (ret==31){swap(a,1,5);swap(a,2,4);sort(a+1,a+4);sort(a+4,a+6);}if (ret==61){swap(a,1,2);swap(a,2,3);swap(a,3,4);}if (ret==62){swap(a,1,3);swap(a,2,4);swap(a,3,5);swap(a,4,5);}if (ret==71){swap(a,3,4);swap(a,4,5);}if (ret==72){swap(a,1,2);swap(a,2,3);swap(a,3,4);swap(a,4,5);}if (ret==81){swap(a,1,2);swap(a,2,3);}if (ret==82){swap(a,1,3);swap(a,2,4);}if (ret==83){swap(a,2,4);swap(a,3,5);swap(a,1,2);swap(a,2,3);}return ret/10;}int main(){while (scanf("%d%d",&a[1].n,&a[1].f)==2){int i;for (i=2;i<=5;i++) scanf("%d%d",&a[i].n,&a[i].f);for (i=1;i<=5;i++) scanf("%d%d",&b[i].n,&b[i].f);for (i=1;i<=5;i++){if (a[i].n==1) a[i].n=14;if (b[i].n==1) b[i].n=14;a[i].f=5-a[i].f; b[i].f=5-b[i].f;}sort(a+1,a+6);sort(b+1,b+6);ma=judge(a);mb=judge(b);if (ma<mb) printf("Player A win!\n");if (ma>mb) printf("Player B win!\n");if (ma==mb){bool equal=true;for (i=1;i<=5;i++)    if (a[i].n!=b[i].n)    {    equal=false;    if (a[i].n>b[i].n) printf("Player A win!\n");    if (a[i].n<b[i].n) printf("Player B win!\n");    break;    }if (!equal) continue;if (a[1].f>b[1].f) printf("Player A win!\n");else printf("Player B win!\n");}}return 0;}

0 0
原创粉丝点击