Restoration of the Permutation
来源:互联网 发布:原油ela数据 编辑:程序博客网 时间:2024/04/28 17:34
Restoration of the Permutation
64-bit integer IO format: %I64d Java class name:(Any)
Let A = {a1, a2, ..., an} be any permutation of the firstn natural numbers {1, 2, ..., n}. You are given a positive integerk and another sequence B = {b1, b2, ..., bn}, wherebi is the number of elementsaj inA to the left of the element at = i such thataj ≥ (i + k).
For example, if n = 5, a possible A is {5, 1, 4, 2, 3}. For k = 2, B is given by {1, 2, 1, 0, 0}. But if k = 3, thenB = {1, 1, 0, 0, 0}.
For two sequences X = {x1, x2, ..., xn} andY = {y1, y2, ..., yn}, leti-th elements be the first elements such thatxi ≠ yi. Ifxi < yi, thenX is lexicographically smaller than Y, while if xi > yi, thenX is lexicographically greater than Y.
Given n, k andB, you need to determine the lexicographically smallestA.
Input
The first line contains two space separated integers n andk (1 ≤ n ≤ 1000,1 ≤ k ≤ n). On the second line aren integers specifying the values of B = {b1, b2, ..., bn}.
Output
Print on a single line n integers of A = {a1, a2, ..., an} such thatA is lexicographically minimal. It is guaranteed that the solution exists.
Sample Input
5 21 2 1 0 0
4 1 5 2 3
4 21 0 0 0
2 3 1 4#include<iostream>#include<cstdio>#include<algorithm>#include<cstdlib>using namespace std;int main(){ int n,k; int i,j,t; int a[1010],b[1010]; while(cin>>n>>k) { for(i=1;i<=n;i++) { cin>>a[i]; } for(i=1;i<=n;i++) { j=1; while(a[j]!=0) { j++; } b[i]=j; a[j]--; for(t=1;t+k<=j;t++) { a[t]--; } } for(i=1;i<n;i++) { cout<<b[i]<<' '; } cout<<b[n]<<endl; } return 0;}
- Restoration of the Permutation
- codeforces B. Restoration of the Permutation
- CF886D Restoration of string
- 67B_Restoration of the Permutation
- restoration of CBCentralManager is only allowed for applications that have specified the "bluetooth-
- find all the permutation of a string
- D. Restoration of string 字符串操作
- Codeforces 890 D. Restoration of string (技巧)
- codeforces 889B. Restoration of string(拓扑排序)
- P25 (*) Generate a random permutation of the elements of a list.
- The next permutation
- The Next Permutation
- The Next Permutation
- CF618B - Guess the Permutation
- B. Guess the Permutation
- Guess the Permutation
- [LeetCode] Next Permutation - Next bigger number with the same set of digits
- Codeforces 889B (Codeforces Round #445 Div. 1) Restoration of string 图论
- Java中各个包的主要作用
- RTSP协议
- java编程心得(十三)——哈希表根据value值排序
- Oracle RAC 负载均衡和透明应用失败切换的配置和测试过程
- 如何在cmd命令行中查看、修改、删除与添加环境变量
- Restoration of the Permutation
- 什么是.9图片
- 11GR1 RAC关于service/TAF的实验们
- linux_shell教程_细说shell编程
- C# 的Attribute特性 与C#的宏定义
- 安装sysbench过程报错,解决办法
- 调试器工作原理
- 1G、2G、3G、4G是什么
- lucene series 1 document 文档 索引创建