poj 3347

时间:2025-04-13 17:05:01
#include   <cstring>
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <cassert>
#include <bitset>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <stack>
#include <cmath>
#include <queue>
#include <list>
#include <map>
#include <set>
using namespace std;
const int maxn=1e2+;
int main()
{
while()
{
int n; scanf("%d",&n); if(n==) break;
int pa[maxn];
int a[maxn];
for(int i=;i<=n;i++) pa[i]=;
for(int i=;i<=n;i++) scanf("%d",&a[i]);
for(int i=;i<=n;i++)
{
if(i==)
{
pa[i]=a[i];
}
else
{
for(int j=;j<i;j++)
{
int x=min(a[i],a[j]);
pa[i]=max(pa[i],pa[j]+x*);
}
pa[i]=max(pa[i],a[i]);
}
}
vector<int> vs;
for(int i=;i<=n;i++)
{
int lll=;
int rrr=;
for(int j=;j<i;j++) if(a[j]>a[i]) lll=max(lll,a[j]+a[i]-(pa[i]-pa[j]));
for(int j=i+;j<=n;j++) if(a[j]>a[i]) rrr=max(rrr,a[j]+a[i]-(pa[j]-pa[i]));
//cout<<lll<<" "<<rrr<<endl;
if(lll+rrr<a[i]*) vs.push_back(i);
}
for(int i=;i<vs.size();i++)
{
printf("%d ",vs[i]);
}
printf("\n");
}
return ;
}