Time To Get Up

1791: Time To Get Up

描述

题目描述:

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.

输入:

The first line of the input contains an integer T(1≤T≤1440), 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.

输出:

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

样例输入
 
        

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.
样例输出
02:38

图中给了 0238 四个数字  根据规律可找其他数字的排列

直接暴力

预写在三维数组  然后匹配即可

# include "bits/stdc++.h"
using namespace std;
char mp[11][8][5] = {
	{".XX.",	
	"X..X",
	"X..X",
	"....",
	"X..X",
	"X..X",
	".XX."}, // 0
	{
	"....",
	"...X",
	"...X",
	"....",
	"...X",
	"...X",
	"...."
	}, 		//1
	{
	".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."
	}
};
char c[8][22];
int check(int x)
{
	
	for(int i = 0;i < 10;i ++)
	{
		bool flag = true;
		for(int j = 0;j < 7;j ++)
		{
			for(int k = 0;k < 4;k ++)
			{
				if(mp[i][j][k] != c[j][k + x])
				flag = false;
			}
			if(!flag)
			break;
		}
		if(flag)
		return i;
	}
	return -1;
}
int main()
{
	int t;
	cin >> t;
	while(t --)
	{
		memset(c,'.',sizeof(c));
		for(int i = 0;i < 7;i ++)
		{
			cin >> c[i];
		}
		
		vector<int> v;
		v.clear();
		v.push_back(check(0));
		v.push_back(check(5));
		v.push_back(check(12));
		v.push_back(check(17));
		
		cout << v[0] << v[1] << ":" << v[2] << v[3] << endl;
	}
	return 0;
}

// 0-3 5-8 12-15 17-21


猜你喜欢

转载自blog.csdn.net/soul_97/article/details/80313447