题目
均分武将,拥有一对更高默契值的武将获胜。双方都很聪明,由小涵先取,求小涵能否拥有武将,求小涵拥有武将的最大值
分析
小涵必然拿走最高默契值,而计算机会拿走第二高的,如此下去,小涵必然会胜利,所以其实求的是次大默契值。
代码
#include <cstdio>
#include <cctype>
using namespace std;
int n,a[501][501],ans;
int in(){
int ans=0; char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans;
}
int main(){
n=in();
for (int i=1;i<=n;i++){
int dmax=0,cmax=0;
for (int j=i+1;j<=n;j++) a[i][j]=a[j][i]=in();
for (int j=1;j<=n;j++){
if (dmax<a[i][j]) cmax=dmax,dmax=a[i][j];
else if (cmax<a[i][j]) cmax=a[i][j];
if (ans<cmax) ans=cmax;
}
}
return !printf("1\n%d",ans);
}