问题 A: 判断三角形

    xiaoxiao2021-03-25  57

    题目描述

    Shoutmon给萌萌兽出了一个题:给出三条线段的长度,问能否组成三角形。不过线段的长度是通过每一个数位的英文给出的。你能帮助萌萌兽吗?

    输入

    每个输入文件中一组数据。

    分三行分别给出三条线段的长度。每行以一个整数N(1<=N<=5)开始,表示后面给出的单词个数;接下来跟着N个英文单词,每个单词表示一个数位,线段的长度由这些英文单词直接拼接而成(例如one two three代表123,one one代表11),每两个单词之间用一个空格隔开。数字0到9分别用下面十个单词表示:zero、one、two、three、four、five、six、seven、eight、nine。数据保证每条线段的长度都不为0。

    输出

    如果可以组成三角形,那么输出YES;否则输出NO。

    样例输入

    1 one 2 one one 3 one one one

    样例输出

    NO #include<stdio.h> #include<iostream> #include<algorithm> #include<string> using namespace std; int trans(string str){ if(str=="one") return 1; else if(str=="two") return 2; else if(str=="three") return 3; else if(str=="four") return 4; else if(str=="five") return 5; else if(str=="six") return 6; else if(str=="seven") return 7; else if(str=="eight") return 8; else if(str=="nine") return 9; else return 0; } int num[4]; int main(){ int n; while(scanf("%d",&n)!=EOF){ int k=1; num[1]=0; for(int i=0;i<n;i++){ string str; cin>>str; int na = trans(str); num[1]*=10; num[1]+=na; } scanf("%d",&n); k=1; num[2]=0; for(int i=0;i<n;i++){ string str; cin>>str; int nb = trans(str); num[2]*=10; num[2]+=nb; } scanf("%d",&n); k=1; num[3]=0; for(int i=0;i<n;i++){ string str; cin>>str; int nc = trans(str); num[3]*=10; num[3]+=nc; } sort(num+1,num+4); // for(int i = 1;i<4;i++){ // cout<<num[i]<<" "; // } if(num[1] +num[2] >num[3]){ cout<<"YES"<<endl; } else cout<<"NO"<<endl; } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-32527.html

    最新回复(0)