为防止广告,目前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;
}
个人工具