/*京东编程题2:共同区间最大值的两倍。if大法好。通过率:76%输入区间 [l1,r1], [l2,r2], [l3,r3], 在重合但不相同的区间上选最大值,输出两数之和.若不存在,输出-1.输入:1 3 2 4 4 6输出:8说明:讨厌鬼选择[2,4]区间的4,小甜妹选择[4,6]区间的4*/#include <iostream>using namespace std;#include<algorithm>int main2() { int l1, r1, l2, r2, l3, r3;  //输入区间范围 cin >> l1 >> r1 >> l2 >> r2 >> l3 >> r3; int ans = -1;  //答案初始化为-1 if (r1 < l2 && r2 < l3) {  //如果没有重合区间,直接输出-1  cout << -1 << endl;  return 0; } if (r1 >= min(r2, r3) && r1 <= max(r2, r3)) {  //r1为第2大  if ((r1 >= l2 && r1 <= r2) || (r1 >= l3 && r1 <= r3)) {   ans = 2 * r1;  } } else if (r2 >= min(r1, r3) && r1 <= max(r1, r3)) {  //r2为第2大  if ((r2 >= l1 && r2 <= r1) || (r2 >= l3 && r2 <= r3)) {   ans = 2 * r2;  } } else if (r3 >= min(r1, r2) && r3 <= max(r1, r2)) {  //r3为第2大  if ((r3 >= l1 && r3 <= r1) || (r3 >= l2 && r3 <= r2)) {   ans = 2 * r3;  } } else if (r1 == min(r1, min(r2, r3))) {  //r1最小  if ((r1 >= l2 && r1 <= r2) || (r1 >= l3 && r1 <= r3)) {   ans = 2 * r1;  } } else if (r2 == min(r1, min(r2, r3))) {  //r2最小  if ((r2 >= l1 && r2 <= r1) || (r2 >= l3 && r2 <= r3)) {   ans = 2 * r2;  } } else if (r3 == min(r1, min(r2, r3))) {  //r3最小  if ((r3 >= l2 && r3 <= r2) || (r3 >= l1 && r3 <= r1)) {   ans = 2 * r3;  } } cout << ans << endl; return 0;}// 64 位输出请用 printf("%lld")
点赞 1
评论 0
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务