#53348: 可以用 b[i] 表示 i 之前的最大值


Tino961009 (能AC,就別管怎麼AC)

學校 : 國立臺中第二高級中學
編號 : 288138
來源 : [111.82.100.143]
最後登入時間 :
2025-10-11 12:15:02

用 b[i] 表示最大值
m[i]表示當前值

ans=max( ans, b[i-1] - m[i] )

//#include<bits/stdc++.h>
using namespace std;
int main(){
 
int n;
cin>>n;
 
vector<int> m(n+2), b(n+2) ;
 
for(int i=1; i<=n; i++){
 
cin>>m[i];
if(m[i]>b[i-1]){
b[i]=m[i];
}
else b[i]=b[i-1];
 
}
 
int ans=b[n-1]-m[n];
for(int i=n; i>0; i--){
 
ans=max(ans, b[i-1]-m[i]);
}
 
cout<<ans<<endl;
return 0;
 
#53349: Re: 可以用 b[i] 表示 i 之前的最大值


Tino961009 (能AC,就別管怎麼AC)

學校 : 國立臺中第二高級中學
編號 : 288138
來源 : [111.82.100.143]
最後登入時間 :
2025-10-11 12:15:02

用 b[i] 表示最大值  (標題給錯 包括 i 不是 i 之前)
m[i]表示當前值

ans=max( ans, b[i-1] - m[i] )

//#include
using namespace std;
int main(){
 
int n;
cin>>n;
 
vector m(n+2), b(n+2) ;
 
for(int i=1; i<=n; i++){
 
cin>>m[i];
if(m[i]>b[i-1]){
b[i]=m[i];
}
else b[i]=b[i-1];
 
}
 
int ans=b[n-1]-m[n];
for(int i=n; i>0; i--){
 
ans=max(ans, b[i-1]-m[i]);
}
 
cout<
return 0;