zoukankan      html  css  js  c++  java
  • Codeforces Round #250 (Div. 2)—A. The Child and Homework

         好题啊,被HACK了。曾经做题都是人数越来越多。这次比赛 PASS人数 从2000直掉 1000人  被HACK  1000多人!

    没见过的科技啊


    1 2 4 8 这组数 被黑的

    A. The Child and Homework
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Once upon a time a child got a test consisting of multiple-choice questions as homework. A multiple-choice question consists of four choices: ABC and D. Each choice has a description, and the child should find out the only one that is correct.

    Fortunately the child knows how to solve such complicated test. The child will follow the algorithm:

    • If there is some choice whose description at least twice shorter than all other descriptions, or at least twice longer than all other descriptions, then the child thinks the choice is great.
    • If there is exactly one great choice then the child chooses it. Otherwise the child chooses C (the child think it is the luckiest choice).

    You are given a multiple-choice questions, can you predict child's choose?

    Input

    The first line starts with "A." (without quotes), then followed the description of choice A. The next three lines contains the descriptions of the other choices in the same format. They are given in order: BCDPlease note, that the description goes after prefix "X.", so the prefix mustn't be counted in description's length.

    Each description is non-empty and consists of at most 100 characters. Each character can be either uppercase English letter or lowercase English letter, or "_".

    Output

    Print a single line with the child's choice: "A", "B", "C" or "D" (without quotes).

    Sample test(s)
    input
    A.VFleaKing_is_the_author_of_this_problem
    B.Picks_is_the_author_of_this_problem
    C.Picking_is_the_author_of_this_problem
    D.Ftiasch_is_cute
    
    output
    D
    
    input
    A.ab
    B.abcde
    C.ab
    D.abc
    
    output
    C
    
    input
    A.c
    B.cc
    C.c
    D.c
    
    output
    B
    
    Note

    In the first sample, the first choice has length 39, the second one has length 35, the third one has length 37, and the last one has length 15. The choice D (length 15) is twice shorter than all other choices', so it is great choice. There is no other great choices so the child will choose D.

    In the second sample, no choice is great, so the child will choose the luckiest choice C.

    In the third sample, the choice B (length 2) is twice longer than all other choices', so it is great choice. There is no other great choices so the child will choose B.


    AC:


    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <algorithm>
    const int N = 110;
    using namespace std;
    char a[10][N];
    int s[10];
    int main()
    {
        for(int i = 0;i<4;i++)
        {
            scanf("%s",a[i]);
            s[i] = strlen(a[i]);
            s[i] -=2;
        }
            int flag = 0,flag1 = 0;
            sort(s,s+4);
            int ma = s[3];
            int mi = s[0];
            for(int i = 1;i<4;i++)
            {
                if(s[0]==0)
                    break;
                if((s[i]/s[0])>=2)
                {
                   flag++;
                }
            }
            for(int i = 0;i<3;i++)
            {
                if(s[i]==0)
                    break;
                if((s[3]/s[i])>=2)
                {
                    flag1++;
    
                }
            }
    
            if(flag1==3 && flag!=3)
            {
                for(int i = 0;i<4;i++)
                {
                    int len = strlen(a[i]);
                    len -= 2;
                    if(len==ma)
                    {
                        printf("%c",'A'+i);
                    }
                }
            }
           else if(flag==3 && flag1!=3)
            {
                for(int i = 0;i<4;i++)
                {
                    int len = strlen(a[i]);
                    len -=2;
                    if(len==mi)
                    {
                        printf("%c",'A'+i);
                    }
                }
            }
            else
                printf("C
    ");
    
        return 0;
    }



  • 相关阅读:
    POJ 2533 Longest Ordered Subsequence(裸LIS)
    HDU 1159 Common Subsequence(裸LCS)
    HDU 1160(两个值的LIS,需dfs输出路径)
    HDU 1260 Tickets (普通dp)
    HDU 2859 Phalanx(对称矩阵 经典dp样例)
    2018年暑假ACM个人训练题7 题解报告
    HDU 1060 Leftmost Digit(求N^N的第一位数字 log10的巧妙使用)
    HDU 1071 The area(求三个点确定的抛物线的面积,其中一个点是顶点)
    HDU 1077 Catching Fish(用单位圆尽可能围住多的点)
    HDU 1099 Lottery (求数学期望)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5230095.html
Copyright © 2011-2022 走看看