NYOJ--811--变态最大值
/* Name: NYOJ--811--变态最大值 Author: shen_渊 Date: 17/04/17 15:49 Description: 看到博客上这道题浏览量最高,原来的代码就看不下去了 o(╯□╰)o */ #include<cstring> #include<iostream> #include<algorithm> using namespace std; struct group{ int first,second,third; int max_value;//三个数中的最大值 bool operator<(const group &a)const{ return max_value>a.max_value; } }num[4000]; int main() { int n,i,j; while(cin>>n){ memset(num,0,sizeof(num)); i = n/3; for(j=0; j<i; ++j){ cin>>num[j].first>>num[j].second>>num[j].third; if((j+1)%2){ num[j].max_value = (num[j].max_value = num[j].first>num[j].second?num[i].first:num[j].second) >num[j].third?num[j].max_value:num[j].third; }else{ num[j].max_value = (num[j].max_value = num[j].first>num[j].second?num[j].second:num[j].first) >num[j].third?num[j].third:num[j].max_value; } } sort(num,num+i); cout<<num[0].max_value<<endl; } return 0; }
/* Name: NYOJ--811--变态最大值 Author: shen_渊 Date: 17/04/17 16:12 Description: 整理了一下以前的代码 */ #include<stdio.h> #include<malloc.h> int smax(int a,int b,int c){ int max; max = (max = a>b?a:b)>c?max:c; return max; } int smin(int a,int b,int c){ int max; max = (max = a<b?a:b)<c?max:c; return max; } int main() { int N; int n; int *a,*b; int mark = 0; while(scanf("%d",&N) != EOF){ fflush(stdin);//清空输入缓冲区 n = N/3; a=(int *)malloc(sizeof(int)*N); b=(int *)malloc(sizeof(int)*n); int i=0,j=0; for(i=0;i<N;i++)scanf("%d",&a[i]); i=0; while(i<N){ if(mark%2){ b[j++]=smin(a[i],a[i+1],a[i+2]); mark++; } else{ b[j++]=smax(a[i],a[i+1],a[i+2]); mark++; } i += 3; } int d=b[0]; for(i=1;i<n;i++)if(d < b[i])d=b[i]; printf("%d\n",d); mark = 0; } return 0; }