拆分

[题目描述]
现在有n个服务器,服务器i最多能处理ai大小的数据。
接下来会有m条指令b1,b2....bm,指令i表示发送bi大小的数据,需要你分配一个空闲的服务器。
请你算出一个序列p= [p1,p2...pm],表示指令i的数据分配给服务器Pi。
你需要使得p的字典序是所有满足要求的序列中字典序第k小的。如果不存在这样的序列p,输出-1。
对于两个长度相等的序列s= [s1,s2....sm]与t= [t1,t2....tm],称s的字典序小于t,当且仅当:存在一个位置i,使得在第i个元素之前s和t都相同,并且si< ti。
[输入格式]
从文件partition.in中读入数据。
输入的第一行包含三个正整数 n, m, k。(1<=m<=n<=12)
第二行包含n个正整数a1, a2...an。.
第三行包含m个正整数b1, b2...bm.
[输出格式]
输出到文件partition. out中。
若存在答案,输出一行m个整数表示你所求出的序列p;否则输出一行一个整数-1。
[样例1输入]
6 6 1
1 9 1 9 8 1
1 1 4 5 1 4
[样例1输出]
1 3 2 4 6 5

[样例1解释]
第1条指令分给服务器1;
第2条指令分给服务器3;
第3条指令分给服务器2;
第4条指令分给服务器4;
第5条指令分给服务器6;
第6条指令分给服务器5。
可以证明,这是字典序最小的分配方案。.

信息

ID
2735
难度
9
分类
(无)
标签
递交数
2
已通过
1
通过率
50%
上传者