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语句用的简直神了,根本连数组都没开,节省了大量的代码,简洁清晰
#includeint 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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
