看个程序;
#include<bits/stdc++.h>
using namespace std;
int a[501000],zuom[501000],youm[501000];
int n,k,m,max=0;
void kk()
{
cin>>n>>k;
a[0]=0;a[n+1]=0;
for(int i=1;i<=n;i++)
cin>>a[i];
}
void ii()
{
for(int i=1;i<=n;i++)
if(a[i-1]>=zuom[i-1])
zuom[i]=a[i-1];
else
zuom[i]=zuom[i-1];
for(int i=n;i>=1;i--)
if(a[i+1]>=youm[i+1])
youm[i]=a[i+1];
else
youm[i]=youm[i+1];
for(int i=1;i<=k;i++)
{
cin>>m;
if(zuom[m]>youm[m])
max=zuom[m];
else
max=youm[m];
cout<<zuom[m]<<' '<<youm[m]<<' '<<max<<endl;
}
}
int main()
{
kk();
ii();
return 0;
}
猜猜看哪错了?
-----------------------------------------
错在全局用了max,这max是有内置函数的;max(1,2)=2;max(-1000,2999)=2999;所以就跟map一样有内置函数的不能定义!!
所以,后来我改了maxx