
以上是我的分析思路,这个思路我认为是十分清晰的
题目地址:https://www.luogu.com.cn/problem/P1199
以下是我的代码
#include <bits/stdc++.h>
using namespace std;
bool cmp(long long a, long long b) {
return a > b; // 降序排列
}
int main(){
int n;
cin>>n;
long long a[n+1][n+1];
memset(a,0,sizeof(a));
for(int i=1;i<n;i++){
for(int j=1;j<=n-i;j++){
long long c;
cin>>c;
a[i][j+i]=c;
a[j+i][i]=c;
}
}
long long m[n+1];
memset(m,0,sizeof(m));
for (int i = 1; i <= n; ++i) {
std::sort(a[i] + 1, a[i] + n + 1, cmp); // 降序排序
long long max_val = a[i][1];
long long second_max = -1;
for (int j = 1; j <= n; ++j) {
if (a[i][j] < max_val) {
second_max = a[i][j];
break;
}
}
m[i] = second_max;
}
long long ans=0;
for(int i=1;i<=n;i++){
if(m[i]>ans){
ans=m[i];
}
}
cout<<'1'<<endl;
cout<<ans<<endl;
return 0;
}