Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
各位大侠看下我的程序吧。。所有能见到的数据都过了。。就是wa#include <iostream> using namespace std; int main() { int i,k,n,max,flag,f; int a[60001],v1[60001],v2[60001]; int ans[60001]; cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; v1[i]=v2[i]=1; } for (i=2;i<=n;i++) { if (a[i]>a[i-1]) v1[i]+=v1[i-1]; } for (i=n-1;i>=1;i--) { if (a[i]>a[i+1]) v2[i]+=v2[i+1]; } for (i=1;i<=n;i++) { v1[i]+=v2[i]-1; } k=n; f=0; while (k>0) { max=0; flag=0; for (i=1;i<=n;i++) { if (v1[i]>max) { max=v1[i]; flag=i; } } if (a[flag-v1[flag]+v2[flag]-1]>a[flag-v1[flag]+v2[flag]]) { v1[flag-v1[flag]+v2[flag]-1]--; v2[flag-v1[flag]+v2[flag]-1]--; } if (a[flag+v2[flag]]>a[flag+v2[flag]-1]) { v1[flag+v2[flag]]--; } for (i=flag-v1[flag]+v2[flag];i<=flag+v2[flag]-1;i++) { v1[i]=0; } f++; ans[f]=flag; k-=max; } for (i=1;i<=f;i++) for (k=i+1;k<=f;k++) if (ans[i]>ans[k]) { flag=ans[i]; ans[i]=ans[k]; ans[k]=flag; } for (i=1;i<=f;i++) { cout<<ans[i]; if (i!=f) cout<<endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator