这道题我真是无语了,本来想用dp写,结果空间超限了!
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,a[10001];
cin>>n;
int i,j;
for(i=0;i<n;i++)
cin>>a[i];
int q;
cin>>q;
int k,l;
while(q--)
{
cin>>k>>l;
int max=0;
for(i=k;i<=l;i++)
if(max<a[i])
max=a[i];
cout<<max<<endl;
}
return 0;
}
dp:
#include<iostream>
#include<algorithm>
using namespace std;
int dp[10001][10001]={0};
int main()
{
int n,a[10001];
cin>>n;
int i,j;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
dp[i][i]=a[i];
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
dp[i][j]=max(dp[i][j-1],a[j]);
int q;
cin>>q;
int k,l;
while(q--)
{
cin>>k>>l;
cout<<dp[k][l]<<endl;
}
return 0;
}