问题 A: 判断三角形

题目描述

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;
} 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值