zoukankan      html  css  js  c++  java
  • hdoj-5099-Comparison of Android versions

    Comparison of Android versions

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 1172 Accepted Submission(s): 470


    Problem Description
    As an Android developer, itˇs really not easy to figure out a newer version of two kernels, 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. The code names are ordered alphabetically. The latest code name is K (KitKat).
    The second letter is a branch code that allows Google to identify the exact code branch that the build was made from, and R is by convention the primary release 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 within the quarter, so F85 is June 24 2010.

    Finally, the last letter identifies individual versions related to the same date code, sequentially starting with A; A is actually implicit and usually omitted 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 line starting with ¨Case #: 〃 (# means the number of the test case). Then, output the result of release comparison as follows:

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

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

    If two builds are not in the same code branch, just compare the date code; if they are in the same code branch, compare the date code together with the individual version.

    Sample Input
    2 FRF85B EPF21B KTU84L KTU84M

    Sample Output
    Case 1: > > Case 2: = <

    Source

    Recommend
    hujie | We have carefully selected several similar problems for you:5379 5378 5377 5376 5375

    #include<stdio.h> 
    #include<string.h>
    int main(){
    	int tt,ncas=0;
    	scanf("%d",&tt);
    	while(tt--){
    		ncas++;
    		char s[10],t[10];
    	
    		scanf("%s%s",s,t);	
    		int len1=strlen(s),len2=strlen(t);
    		printf("Case %d: ",ncas);
    
    		if(s[0]==t[0]){
    			printf("= ");
    		}
    		else{
    			if(s[0]>t[0]) printf("> ");
    			else printf("< ");
    		}
    		if(s[1]!=t[1]){
    			s[len1-1]='';
    			t[len2-1]='';
    		}
    		int temp=strcmp(s+2,t+2);
    		if(temp>0) printf(">");
    		else if(temp<0) printf("<");
    		else printf("=");
    		printf("
    ");
    	}
    	return 0;
    }

    #include<stdio.h> 
    #include<string.h>
    int f(char a[]){
        int i,res=0;
        for(i=3;;++i){
          if(a[i]>='0'&&a[i]<='9') res=res*10+a[i]-'0';
          else return res;
        }
    }
    int main(){
        int tt,ncas=0;
        scanf("%d",&tt);
        while(tt--){
            ncas++;
            char s[10],t[10];
            
            scanf("%s%s",s,t);
    		int len1=strlen(s),len2=strlen(t);
            printf("Case %d: ",ncas);
            if(s[0]==t[0]){
                printf("= ");
            }
            else{
                if(s[0]>t[0]) printf("> ");
                else printf("< ");
            }
            if(s[2]>t[2]) printf(">");
            else if(s[2]<t[2]) printf("<");
            else{
    		    int x=f(s),y=f(t);
            	if(x==y){
                if(s[1]==t[1]){
                    if(s[len1-1]==t[len2-1]) printf("=");
                    else if(s[len1-1]>t[len2-1]) printf(">");
                    else printf("<");
                }
                else printf("=");
    	        }
    	        else if(x>y) printf(">");
    	        else printf("<");
            }
            printf("
    ");
        }
        return 0;
    }



  • 相关阅读:
    python之路_socketserver模块
    java 字符串String操作工具类
    maven常用插件
    查杀oracle锁表
    正则表达式汇总
    javascript 数组操作
    javascript中sleep等待实现
    js获取服务端IP及端口及协议
    log4j中的MDC和NDC
    如何设置(修改)jetty(maven插件maven-jetty-plugi)的端口
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6955590.html
Copyright © 2011-2022 走看看