Petya and Countryside - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/CF66B为什么这么写过不了
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1005;
int w[N];
int main(){
int n;
cin >> n;
int ma=0;
int x;
int ans;
for(int i=1;i<=n;i++){
scanf("%d",&w[i]);
}
for(int i=1;i<=n;i++){
ma = w[i];
int ma2 = ma;
int cnt = 0;
for(int j=i + 1;j<=n;j++){
if(w[j] > ma){
break;
}else{
ma = w[j];
cnt++;
}
}
for(int j=i - 1;j>=1;j--){
if(w[j] > ma2){
break;
}else{
ma2 = w[j];
cnt++;
}
}
ans =max(ans,cnt);
}
printf("%d\n",ans +1);
return 0;
}
这么写就可以过,仅仅是cnt初始化的值不同,一个是初始化的时候为 1 另一个是初始化为 0 ,最后加1
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1005;
int w[N];
int main(){
int n;
cin >> n;
int ma=0;
int x;
int ans;
for(int i=1;i<=n;i++){
scanf("%d",&w[i]);
}
for(int i=1;i<=n;i++){
ma = w[i];
int ma2 = ma;
int cnt = 1;
for(int j=i + 1;j<=n;j++){
if(w[j] > ma){
break;
}else{
ma = w[j];
cnt++;
}
}
for(int j=i - 1;j>=1;j--){
if(w[j] > ma2){
break;
}else{
ma2 = w[j];
cnt++;
}
}
ans =max(ans,cnt);
}
printf("%d\n",ans);
return 0;
}