uva 141
来源:互联网 发布:透明相机软件下载 编辑:程序博客网 时间:2024/06/10 01:09
//
// main.cpp
// ceshi
//
// Created by 戴志扬 on 2016/11/6.
// Copyright © 2016年 sky.dai. All rights reserved.
//
//
// main.cpp
// ceshi
//
// Created by 戴志扬 on 2016/10/25.
// Copyright © 2016年 sky.dai. All rights reserved.
//
#include<iostream>
#include<cstdio>
#include<map>
#include<climits>
#include<cmath>
#include<cstring>
#include<vector>
#include<cstdlib>
#include<list>
using namespacestd;
////////
char Map[52][52];
map<string,int>judge;
int Size;
void initial()
{
judge.clear();
memset(Map,'1',sizeof(Map));
}
string switch_over(int k)
{
string str;
switch (k)
{
case0:
for(int i=0;i<Size;i++)
for(int j=0;j<Size;j++)
str+=Map[i][j];
break;
case1:
for(int i=Size-1;i>=0;i--)
for(int j=0;j<Size;j++)
str+=Map[i][j];
break;
case2:
for(int i=0;i<Size;i++)
for(int j=Size-1;j>=0;j--)
str+=Map[i][j];
case3:
for(int i=Size-1;i>=0;i--)
for(int j=Size-1;j>=0;j--)
str+=Map[i][j];
}
return str;
}
int main()
{
while(scanf("%d",&Size)==1&& Size)
{
initial();
int x,y;
char ch;
string str;
bool flag =false;
for(int i=0;i<Size;i++)
for(int j=0;j<Size;j++)
str+=Map[i][j];
judge[str] =1;
//保存图像
int ans =0 ;
int man =0;
for(int i=0;i<Size*2;i++)
{
scanf("%d %d %c",&x,&y,&ch);
if(flag)
continue;
if(ch=='+')
Map[x-1][y-1] ='2';
else
Map[x-1][y-1] ='1';
//input&&construct map
string Str[4];
for(int j=0;j<4;j++)
{
Str[j] = switch_over(j);
if(judge[Str[j]]!=0)
{
flag = true;
ans = i+1;
man = i;
break;
}
}
if(flag ==false)
{
for(int j=0;j<4;j++)
judge[Str[j]]=1;
}
}
if(flag ==true)
{
if(man&1)
man = 1;
else
man =2;
printf("Player %d wins on move %d\n",man,ans);
}
elseprintf("Draw\n");
}
return0;
}
- uva 141
- uva 141
- uva 141(哈希)
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- laravel输出HTML内容
- Codeforces 474D Flowers【dp】
- android知识回顾------安全加密(金融类)
- Systemd 入门教程:实战篇
- Android动画机制-传统动画
- uva 141
- C++中 volatile关键字,实现多线程编程必备
- Android图形处理-百变Paint
- js函数再总结
- Installation failed with message:INSTALL_CANCELED_BY_USER
- PHP你所不知道的事--双等号
- 关于java代码块与继承的执行顺序
- 考试题目 火柴棒等式
- JavaScript快速上手之10:Break 和 Continue 语句