FZU 2184 逆序数还原
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int a[1005]; int b[1005]; int flag[1005]; int main() { int i,j,n; while(~scanf("%d",&n)) { memset(flag,0,sizeof(flag)); for(i=1; i<=n; i++) scanf("%d",&a[i]); for(j=1; j<=n; j++) { int summ=0; for(i=1; i<=n; i++) { if(summ<a[j]&&flag[i]==0)summ++; else if(summ==a[j]&&flag[i]==0) { flag[i]=1; b[j]=i; break; } } } for(i=1; i<=n; i++) { if(i<n) printf("%d ",b[i]); else printf("%d\n",b[i]); } } return 0; }