为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
Sgu/171
来自NOCOW
< Sgu
/by Logic #include<stdio.h> #include<algorithm> using namespace std; const int maxk=150,maxn=16050; struct n1{ int nu,ni,q; }z[maxk]; struct n2{ int nu,p,w; }st[maxn]; bool cmp1(const n1 &a,const n1 &b) { return a.q>b.q; } bool cmp2(const n2 &a,const n2 &b) { return a.w>b.w; } int k,n=0,se[maxn]; int main() { #ifndef ONLINE_JUDGE freopen("data.in","r",stdin); #endif int i,j; scanf("%d",&k); for(i=0;i<k;i++) z[i].nu=i,scanf("%d",&z[i].ni),n+=z[i].ni; for(i=0;i<k;i++) scanf("%d",&z[i].q); for(i=0;i<n;i++) st[i].nu=i,scanf("%d",&st[i].p); for(i=0;i<n;i++) scanf("%d",&st[i].w); sort(z,z+k,cmp1); sort(st,st+n,cmp2); for(i=0;i<n;i++) { for(j=0;j<k;j++) if(z[j].q<st[i].p&&z[j].ni) { se[st[i].nu]=z[j].nu; z[j].ni--; break; } if(j==k) { for(j=0;j<k;j++) if(z[j].ni) { se[st[i].nu]=z[j].nu; z[j].ni--; break; } } } //for(i=0;i<k;i++) printf("%d ",z[i].ni);printf("\n"); for(i=0;i<n;i++) printf("%d ",se[i]+1); return 0; }