http://acm.hdu.edu.cn/showproblem.php?pid=6077
给出一个类似电子表显示时间的图,求输出相应阿拉伯数字表示的时间
因为在电子表里每个数字可以看成7条边组成,所以在7条边里面找一个点,就可以表示该条边是否存在,就可以根据这个来对应阿拉伯数字了.
#include<bits/stdc++.h>
using namespace std;
char a[44][44];
int find(int x,int y)
{
if(a[x][y+1]=='X'&&a[x+1][y]=='X'&&a[x+1][y+3]=='X'&&a[x+3][y+1]=='.'&&a[x+4][y]=='X'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='X')
return 0;
if(a[x][y+1]=='.'&&a[x+1][y]=='.'&&a[x+1][y+3]=='X'&&a[x+3][y+1]=='.'&&a[x+4][y]=='.'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='.')
return 1;
if(a[x][y+1]=='X'&&a[x+1][y]=='.'&&a[x+1][y+3]=='X'&&a[x+3][y+1]=='X'&&a[x+4][y]=='X'&&a[x+4][y+3]=='.'&&a[x+6][y+1]=='X')
return 2;
if(a[x][y+1]=='X'&&a[x+1][y]=='.'&&a[x+1][y+3]=='X'&&a[x+3][y+1]=='X'&&a[x+4][y]=='.'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='X')
return 3;
if(a[x][y+1]=='.'&&a[x+1][y]=='X'&&a[x+1][y+3]=='X'&&a[x+3][y+1]=='X'&&a[x+4][y]=='.'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='.')
return 4;
if(a[x][y+1]=='X'&&a[x+1][y]=='X'&&a[x+1][y+3]=='.'&&a[x+3][y+1]=='X'&&a[x+4][y]=='.'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='X')
return 5;
if(a[x][y+1]=='X'&&a[x+1][y]=='X'&&a[x+1][y+3]=='.'&&a[x+3][y+1]=='X'&&a[x+4][y]=='X'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='X')
return 6;
if(a[x][y+1]=='X'&&a[x+1][y]=='.'&&a[x+1][y+3]=='X'&&a[x+3][y+1]=='.'&&a[x+4][y]=='.'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='.')
return 7;
if(a[x][y+1]=='X'&&a[x+1][y]=='X'&&a[x+1][y+3]=='X'&&a[x+3][y+1]=='X'&&a[x+4][y]=='X'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='X')
return 8;
if(a[x][y+1]=='X'&&a[x+1][y]=='X'&&a[x+1][y+3]=='X'&&a[x+3][y+1]=='X'&&a[x+4][y]=='.'&&a[x+4][y+3]=='X'&&a[x+6][y+1]=='X')
return 9;
}
int main(){
int t;
cin>>t;
while(t--)
{
int i;
for(i=0;i<7;i++)
cin>>a[i];
int q,w,e,r;
q=find(0,0);
w=find(0,5);
e=find(0,12);
r=find(0,17);
cout<<q<<w<<":"<<e<<r<<endl;
}
return 0;
}