[ICPC 2024 Chengdu R] Recover Statistics题解

P15083 [ICPC 2024 Chengdu R] Recover Statistics

题目描述

你最近进行了一项关于大学生从宿舍到教学楼通勤时间的调查。你认为这项调查可以显著改善校园规划,使师生通勤更加便利。作为分析的一部分,你计算了 P50、P95 和 P99 通勤时间以支持你的结论。这里,Pxxx 通勤时间为 yyy 意味着在整个数据集中,恰好x%x\%x% 的通勤时间小于或等于 yyy。例如,集合 {1,1,4,5,1,4}\{1, 1, 4, 5, 1, 4\}{1,1,4,5,1,4} 的 P50 可以是 111222333,因为恰好6×50%=36 \times 50\% = 36×50%=3 个值小于或等于 111222333。然而,这些值不存在有效的 P95 或 P99,因为 6×95%6 \times 95\%6×95%6×99%6 \times 99\%6×99% 不是整数。

不幸的是,出了点问题——你不小心删除了整个数据集。你唯一剩下的数据是通勤时间的 P50、P95 和 P99 值。由于你没有时间重新进行这项调查,你需要重建一个与所有 P50、P95 和 P99 值都匹配的数据集。

输入格式

输入包含三行。第一行包含一个整数 aaa,表示 P50 值。第二行包含一个整数 bbb,表示 P95 值。第三行包含一个整数 ccc,表示 P99 值。(1≤a<b<c<1091 \le a < b < c < 10^91a<b<c<109

输出格式

输出两行。第一行应包含一个整数 nnn100≤n≤105100 \le n \le 10^5100n105),表示数据集的长度。

第二行应包含 nnn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_na1,a2,,an1≤ai≤1091 \le a_i \le 10^91ai109),表示重建的数据集。整数可以按任意顺序排列。任何满足要求的输出都将被视为正确。

输入输出样例 #1

输入 #1

50
95
99

输出 #1

100
1 2 ... 100

说明/提示

示例输出为显示方便省略了 333999999(含)之间的值。在你的输出中,必须包含所有这些值。

请注意,本题中 Pxxx 值的定义与第 xxx 百分位数不同。

翻译由 DeepSeek V3 完成

思路

按题意构造即可。

代码见下

#include<bits/stdc++.h> 
using namespace std;
long long a,b,c;
int main(){
	cin>>a>>b>>c;
	cout<<100<<endl;
	for(int i=1;i<=50;i++){
		cout<<a<<" ";
	}
	for(int i=51;i<=95;i++){
		cout<<b<<" ";
	}
	for(int i=96;i<=99;i++){
		cout<<c<<" ";
	}
	cout<<1000000000<<endl;
	cout<<endl;
	return 0; 	
}
posted @ 2026-01-26 21:15  bz02_2023f2  阅读(3)  评论(0)    收藏  举报  来源