nyoj-精挑细选

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

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

#include 
#include 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
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){scanf("%d%d%d",&x,&y,&z);if(x>a||x==a&&yc) { a=x;b=y;c=z; }}printf("%d\n",c);}return 0;
}        

 

转载于:https://www.cnblogs.com/ekinzhang/p/4375437.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部