AC
2024-07-19 20:30:07
发布于:云南
5阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,a[105],p[105],r[105],l[105];
int main()
{
while(~scanf("%d",&n)&&n)
{
memset(p,0,sizeof(p)),memset(l,0x3f,sizeof(l)),memset(r,0x8f,sizeof(r));
for(int i=1;i<=n;++i)
{
scanf("%d",&a[i]),a[i]*=2;
for(int j=1;j<i;++j) p[i]=max(p[i],p[j]+min(a[j],a[i]));
}
for(int i=1;i<=n;++i)
{
for(int j=1;j<i;++j) if(a[j]>a[i]) r[i]=max(r[i],p[j]+a[j]/2);
r[i]=max(r[i],p[i]-a[i]/2);
}
for(int i=1;i<=n;++i)
{
for(int j=i+1;j<=n;++j) if(a[j]>a[i]) l[i]=min(l[i],p[j]-a[j]/2);
l[i]=min(l[i],p[i]+a[i]/2);
}
for(int i=1;i<=n;++i) if(r[i]<l[i]) printf("%d ",i);
puts("");
}
return 0;
}
这里空空如也
有帮助,赞一个