NC201725. 恢复数列
描述
给出一个长度为n的非负数列a,记数列中第i个数字为。请你求出任意一个x满足:
输入描述
输入共一行两个用空格隔开的正整数n,x。含义见【题目描述】
输出描述
输出共一行n个用空格隔开的正整数,第i个数字表示。当你输出多于n个数字时,只有前n个数字有效。如果有多种答案,你只需要输出任意一种输入保证有解。
示例1
输入:
12 6
输出:
2 0 0 0 0 0 0 1 1 1 1 1
说明:
C++14(g++5.4) 解法, 执行用时: 84ms, 内存消耗: 3940K, 提交时间: 2020-04-04 21:53:56
#include<iostream> using namespace std; int n,x,a1; int main(){ cin>>n>>x; a1=(n-2)/(x-1); cout<<a1<<" "; for(int i=1;i<=x;i++) cout<<"0 "; for(int i=1;i<a1;++i) for(int j=1;j<x;++j) cout<<i<<" "; }
C++11(clang++ 3.9) 解法, 执行用时: 51ms, 内存消耗: 3704K, 提交时间: 2020-08-05 23:18:51
#include<bits/stdc++.h> using namespace std; int a,n; int main() { scanf("%d%d",&n,&a); int k=(n-2)/(a-1); printf("%d %d ",k,0); for(int i=k-1;i>=0;i--) for(int j=1;j<=a-1;j++) printf("%d ",i); return 0; }