Time To Get Up

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 524288/524288K (Java/Other)

Total Submission(s) : 3   Accepted Submission(s) : 3
Font: Times New Roman | Verdana | Georgia
Font Size: ← →

Problem Description

Little Q's clock is alarming! It's time to get up now! However, after reading the time on the clock, Little Q lies down and starts sleeping again. Well, he has 5  alarms, and it's just the first one, he can continue sleeping for a while.

Little Q's clock uses a standard 7-segment LCD display for all digits, plus two small segments for the '':'', and shows all times in a 24-hour format. The '':'' segments are on at all times.



Your job is to help Little Q read the time shown on his clock.

Input

The first line of the input contains an integer T(1T1440)  , denoting the number of test cases.

In each test case, there is an 7×21  ASCII image of the clock screen.

All digit segments are represented by two characters, and each colon segment is represented by one character. The character ''X'' indicates a segment that is on while ''.'' indicates anything else. See the sample input for details.

Output

For each test case, print a single line containing a string t  in the format of HH:MM  , where t(00:00t23:59)  , denoting the time shown on the clock.

Sample Input

1
.XX...XX.....XX...XX.
X..X....X......X.X..X
X..X....X.X....X.X..X
......XX.....XX...XX.
X..X.X....X....X.X..X
X..X.X.........X.X..X
.XX...XX.....XX...XX.

Sample Output

02:38

Source

2017 Multi-University Training Contest - Team 4 

这个题真@#¥……#¥%&#¥……%@#%#@!¥#……#¥&%;



#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<stdlib.h>
using namespace std;
typedef long long ll;

struct numbe{
	char number[10][5];
};

numbe t[15]={{".XX.",
	  "X..X",
	  "X..X",
	  "....",
	  "X..X",
	  "X..X",
	  ".XX.",},
	  {"....",
	  "...X",
	  "...X",
	  "....",
	  "...X",
	  "...X",
	  "....",},
	  {".XX.",
	  "...X",
	  "...X",
	  ".XX.",
	  "X...",
	  "X...",
	  ".XX.",},
	  {".XX.",
	  "...X",
	  "...X",
	  ".XX.",
	  "...X",
	  "...X",
	  ".XX.",},
	  {"....",
	  "X..X",
	  "X..X",
	  ".XX.",
	  "...X",
	  "...X",
	  "....",},
	  {".XX.",
	  "X...",
	  "X...",
	  ".XX.",
	  "...X",
	  "...X",
	  ".XX.",},
	  {".XX.",
	  "X...",
	  "X...",
	  ".XX.",
	  "X..X",
	  "X..X",
	  ".XX.",},
	  {".XX.",
	  "...X",
	  "...X",
	  "....",
	  "...X",
	  "...X",
	  "....",},
	  {".XX.",
	  "X..X",
	  "X..X",
	  ".XX.",
	  "X..X",
	  "X..X",
	  ".XX.",},
	  {".XX.",
	  "X..X",
	  "X..X",
	  ".XX.",
	  "...X",
	  "...X",
	  ".XX.",}};

int main()
{
	int n,T,x1=0,x2=0,x3=0,x4=0;
	char a[30][30];
/*	for(int num=0;num<=9;num++){
		for(int i=0;i<7;i++){
			for(int j=0;j<=3;j++){
				printf("%c",t[num].number[i][j]);
			}
			puts("");
		}
		puts("");
	}
*/	
	scanf("%d",&T);
	getchar();
	while(T--){
	
		for(int i=0;i<7;i++){
			for(int j=0;j<21;j++){
				scanf("%c",&a[i][j]);
			}
			getchar();
		}
/*		printf("------------\n");
		for(int i=0;i<7;i++){
			for(int j=0;j<21;j++){
				printf("%c",a[i][j]);
			}
			puts("");
		}
		
		printf("------------\n");*/
		
		for(int k=0;k<4;k++){//0123 5678   12131415 17181920
			int flag;
			if(k==0){
				for(int num=0;num<=9;num++){
					flag=1;
					for(int i=0;i<7;i++){
						for(int j=0;j<=3;j++){
							if(a[i][j]!=t[num].number[i][j]){
								
								flag=0;
								break;
							}
						}
					}
					if(flag){
						x1=num;
						break;
					}
				}
			}
			else if(k==1){
				for(int num=0;num<=9;num++){
					flag=1;
					for(int i=0;i<7;i++){
						for(int j=5;j<=8;j++){
							if(a[i][j]!=t[num].number[i][j-5]){
								flag=0;
								break;
							}
						}
					}
					if(flag){
						x2=num;
						break;
					}
				}
			}
			else if(k==2){
				for(int num=0;num<=9;num++){
					flag=1;
					for(int i=0;i<7;i++){
						for(int j=12;j<=15;j++){
							if(a[i][j]!=t[num].number[i][j-12]){
								flag=0;
								break;
							}
						}
					}
					if(flag){
						x3=num;
						break;
					}
				}
			}
			else{
				for(int num=0;num<=9;num++){
					flag=1;
					for(int i=0;i<7;i++){
						for(int j=17;j<=20;j++){
							if(a[i][j]!=t[num].number[i][j-17]){
								flag=0;
								break;
							}
						}
					}
					if(flag){
						x4=num;
						break;
					}
				}	
			}
		}
		printf("%d%d:%d%d\n",x1,x2,x3,x4);
	}
	return 0;
}
	  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值