Codeforces Round #250 (Div. 2) A. The Child and Homework

OpenSoucre發表於2014-06-10

注意題目長度不能考慮字首,而且如果即存在一個選項的長度的兩倍小於其他所有選項的長度,也存在一個選項的長度大於其他選項長度的兩倍,則答案不是一個好的選擇,只能選擇C。

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

struct Answer{
    char item;
    int length;
    Answer(char item_ = 'A', int length_ = 0):item(item_),length(length_){}
    bool operator<(const Answer& a) const{
        return length < a.length;
    }
};

int main(){
    vector<Answer> ans;
    for(int i = 0 ; i < 4; ++ i){
        string str;
        cin >> str;
        ans.push_back(Answer(str[0],str.length()-2));
    }
    sort(ans.begin(),ans.end());
    int index = 1;
    char correct = 'C';
    for(index = 1;index < 4; ++ index){
        if(ans[index].length < 2*ans[0].length) break;
    }
    if(index>=4) correct = ans[0].item;
    for(index = 0; index < 3; ++ index){
        if(2*ans[index].length >ans[3].length) break;
    }
    if(index >= 3) {
        if(correct!='C') correct = 'C';
        else correct = ans[3].item;
    }
    cout<<correct<<endl;

}

 

 

相關文章