- #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+10;
- int main()
- {
- while(1)
- {
- int n; scanf("%d",&n); if(n==0) break;
- int pa[maxn];
- int a[maxn];
- for(int i=1;i<=n;i++) pa[i]=0;
- for(int i=1;i<=n;i++) scanf("%d",&a[i]);
- for(int i=1;i<=n;i++)
- {
- if(i==1)
- {
- pa[i]=a[i];
- }
- else
- {
- for(int j=1;j<i;j++)
- {
- int x=min(a[i],a[j]);
- pa[i]=max(pa[i],pa[j]+x*2);
- }
- pa[i]=max(pa[i],a[i]);
- }
- }
- vector<int> vs;
- for(int i=1;i<=n;i++)
- {
- int lll=0;
- int rrr=0;
- for(int j=1;j<i;j++) if(a[j]>a[i]) lll=max(lll,a[j]+a[i]-(pa[i]-pa[j]));
- for(int j=i+1;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]*2) vs.push_back(i);
- }
- for(int i=0;i<vs.size();i++)
- {
- printf("%d",vs[i]);
- }
- printf("\n");
- }
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3012024.html