HDU 5099 - Comparison of Android versions

9 篇文章 0 订阅

Problem Description

As an Android developer, itˇs really not easy to figure out a newer version of twokernels, because Android is updated so frequently and has many branches.Fortunately, Google identifies individual builds with a short build code, e.g.FRF85B.

The first letter is the code name of the release family, e.g. F is Froyo. Thecode names are ordered alphabetically. The latest code name is K (KitKat).
The second letter is a branch code that allows Google to identify the exactcode branch that the build was made from, and R is by convention the primaryrelease branch.

The next letter and two digits are a date code. The letter counts quarters,with A being Q1 2009. Therefore, F is Q2 2010. The two digits count days withinthe quarter, so F85 is June 24 2010.

Finally, the last letter identifies individual versions related to the samedate code, sequentially starting with A; A is actually implicit and usuallyomitted for brevity.

Please develop a program to compare two Android build numbers.

 

 

Input

The first line is an integer n (1 <= n <=2000), which indicates how many test cases need to process.

Each test case consists of a single line containing two build numbers,separated by a space character.

 

 

Output

For each test case, output a single linestarting with ¨Case #: 〃 (# means the number of the test case). Then, output the result ofrelease comparison as follows:

● Print "<" if the release of the firstbuild number is lower than the second one;
● Print "=" if the release of the first buildnumber is same as he second one;
● Print ">" if the release of the firstbuild number is higher than the second one.

Continue to output the result of date comparison as follows:
● Print "<" if the date of the first buildnumber is lower than the second one;
● Print "=" if the date of the first buildnumber is same as he second one;
● Print ">" if the date of the first buildnumber is higher than the second one.

If two builds are not in the same code branch, just compare the date code; ifthey are in the same code branch, compare the date code together with theindividual version.

 

 

Sample Input

2

FRF85B EPF21B

KTU84L KTU84M

 

 

Sample Output

Case 1: > >

Case 2: = <

 

思路:

模拟


代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;


int main()
{
	int n, k = 1;

	scanf("%d", &n);
	while (n--)
	{
		char st1[10], st2[10];

		scanf("%s%s", st1, st2);
		int len = 6;

		printf("Case %d: ", k++);

		if (st1[0]<st2[0])
			printf("< ");
		else
			if (st1[0] == st2[0])
				printf("= ");
			else
				printf("> ");

		bool flag = false;
		if (st1[1] == st2[1])
			flag = true;

		if (st1[2]>st2[2])
			printf(">\n");
		else
			if (st1[2]<st2[2])
				printf("<\n");
			else
			{
				int a, b;
				a = b = 0;
				a = (st1[3] - '0') * 10 + st1[4] - '0';
				b = (st2[3] - '0') * 10 + st2[4] - '0';
				if (a>b)
					printf(">\n");
				else
					if (a<b)
						printf("<\n");
					else
					{
						if (flag == false)
							printf("=\n");
						else
						{
							if (st1[5]<st2[5])
								printf("<\n");
							else
								if (st1[5]>st2[5])
									printf(">\n");
								else
									printf("=\n");
						}
					}
			}
	}

	return 0;
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值