题解:P15083 [ICPC 2024 Chengdu R] Recover Statistics

· · 题解

题意

构造一个序列,使得 50\% 的数 \le a95\% 的数 \le b99\% 的数 \le c,剩下的 > c。(1 \le a \le b \le c < 10^9

思路

易知这个序列的长度肯定为 100 的倍数,那就设为 100

由题意,有 50\le a,那就让这几个数都等于 a;有 45\le b,那就让这几个数都等于 b;有 4\le c,那就让这几个数都等于 c;剩下一个数就等于 10^9

AC Code

#include <bits/stdc++.h>

using namespace std;

int a, b, c;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin >> a>> b>> c;
    cout << 100<< "\n";
    for (int i = 1; i <= 50; i++) cout << a<< " ";
    for (int i = 1; i <= 45; i++) cout << b<< " ";
    for (int i = 1; i <= 4; i++) cout << c<< " ";
    cout << 1000000000<< "\n";
    return 0;
}