失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > nyoj-精挑细选

nyoj-精挑细选

时间:2022-09-29 07:37:22

相关推荐

nyoj-精挑细选

这道题本来想用结构体排序,想想都烦死了

又来用一个标记数组,先标记最长的,再在最长的里面标记最细的,最后在标记的里面输出编号最大的

#include <iostream>#include <cstring>using namespace std;const int C = 1010;int a[C];int b[C];int c[C];int sign[C]; int Max = 0;int Maxc = 0;int Min = 1000000000;int main(){int n;cin >> n;int m;while(n--){Max = 0;Maxc = 0;Min = 1000000000;memset(sign,0,sizeof(sign));cin >> m; for(int i = 0 ; i < m ;i ++)cin >> a[i] >> b[i] >> c[i];for(int i = 0; i < m; i++)if(a[i] > Max)Max = a[i];for(int i = 0; i < m; i++)if(a[i] == Max)sign[i] = 1;for(int i = 0; i < m; i++)if(sign[i]&&b[i] < Min)Min = b[i];for(int i = 0; i < m ; i++)if(sign[i]&& b[i] != Min)sign[i] = 0;for(int i = 0; i < m; i++)if(sign[i]&& c[i] > Maxc)Maxc = c[i];cout << Maxc << endl;}return 0;}

最优代码,人家这个if语句用的简直神了,根本连数组都没开,节省了大量的代码,简洁清晰

#include<stdio.h>int main(){int n,m,i,a,b,c,x,y,z;scanf("%d",&n);while(n--){scanf("%d",&m);a=0;b=0;c=0;for(i=0;i<m;i++){scanf("%d%d%d",&x,&y,&z);if(x>a||x==a&&y<b||x==a&&y==b&&z>c) { a=x;b=y;c=z; }}printf("%d\n",c);}return 0;}

如果觉得《nyoj-精挑细选》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
精挑细选

精挑细选

2020-04-18

精挑细选

精挑细选

2020-05-10

精挑细选c++

精挑细选c++

2022-01-20

263 精挑细选

263 精挑细选

2021-10-18