http://codeforces.com/gym/101097/attachments

题意:现在有k种颜色的木棍,每种颜色有ni根木棍,每根木棍有一个长度,问是否有三根木棍可以组成三角形,并且这三根木棍的颜色都不相同。

思路:忘了并不能直接枚举第i根,然后找i-1和i-2根,因为还有很多情况没考虑到。

可以用三个变量,分别存储当前最大的三种颜色的最大值,然后根据新进来的颜色进行判定,进行更新。

 #include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define N 5000010
#define INF 0x3f3f3f3f
struct node {
int id; LL val;
bool operator < (const node &rhs) const {
if(val != rhs.val) return val < rhs.val;
return id < rhs.id;
}
} ;
vector<LL> vec;
vector<node> p;
node a, b, c; int main() {
freopen("sticks.in", "r", stdin);
freopen("sticks.out", "w", stdout);
int k; scanf("%d", &k);
int cnt = ;
for(int i = ; i <= k; i++) {
int n; scanf("%d", &n);
vec.clear();
for(int j = ; j <= n; j++) {
LL x; scanf("%lld", &x);
vec.push_back(x);
}
sort(vec.begin(), vec.end());
vec.erase(unique(vec.begin(), vec.end()), vec.end());
for(int j = ; j < vec.size(); j++) p.push_back( (node) { i, vec[j] } );
}
sort(p.begin(), p.end());
bool flag = ;
// a = p[1]; b = p[0]; c.id = 0, c.val = 0;
for(int i = ; i < p.size() && !flag; i++) {
if(a.id == p[i].id) {
if(p[i].val < b.val + c.val) printf("%d %lld %d %lld %d %lld\n", p[i].id, p[i].val, b.id, b.val, c.id, c.val), flag = ;
a = p[i];
} else if(b.id == p[i].id) {
if(p[i].val < a.val + c.val) printf("%d %lld %d %lld %d %lld\n", p[i].id, p[i].val, a.id, a.val, c.id, c.val), flag = ;
b = a; a = p[i];
} else {
if(p[i].val < a.val + b.val) printf("%d %lld %d %lld %d %lld\n", p[i].id, p[i].val, a.id, a.val, b.id, b.val), flag = ;
c = b; b = a; a = p[i];
}
}
if(!flag) puts("NIE");
return ;
}

最新文章

  1. Apache Cordova开发Android应用程序——番外篇
  2. iOS:GCD理解1(同步-异步、串行-并行)
  3. Oracle中的CHR()函数与ASCII()函数
  4. 关于Docker目录挂载的总结
  5. 常见Xcode参数设置错误
  6. Hadoop笔记
  7. ThinkPHP之中的getField、Find、select、返回数据类型详解(ThinkPHP之中所有数据读取了)
  8. 结构体 typedef关键字
  9. 国内流行的两大开源.net微信公众平台SDK对比分析
  10. Arduino 跷跷板(2016-01-04)
  11. 在SSMS里查看TDS数据包内容
  12. 设计模式:空对象模式(Null Object Pattern)
  13. QList 排序
  14. 优先队列的二叉堆Java实现
  15. 手把手教你构建 Kubernetes 1.8 + Flannel 网络(一)
  16. Java经典编程题50道之三十五
  17. (贪心 线段不相交问题)codeVs 1214 线段覆盖
  18. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第5章编程练习2
  19. loj 10004 智力大冲浪
  20. Mybatis批量更新和插入

热门文章

  1. Telnet协议详解(远程登陆协议)
  2. ASP 用隐藏域解决Http无状态问题
  3. Lambda表达式的参数捕获
  4. hexo-theme-next
  5. miniui处理多重子表级联,一次性提交多表数据的ui要点
  6. C#连接oracle 数据库查询时输入中文查询不出来,用plsql就可以
  7. windows qt 使用c++ posix接口编写多线程程序(真神奇)good
  8. flask(一)
  9. kafka笔记4
  10. ListView背景色突变问题