1929(div2)

A. Sasha and the Beautiful Array

萨沙决定送给女友一个数组 a1,a2,,an 。他发现女友会将数组的值 (aiai1) 作为从 2n 的所有整数 i 的和。

请帮助萨沙并告诉他,如果他能以任何方式重新排列数组 a 中的元素,他能得到的最大数组美度是多少。

void solve() {
    int n;cin >> n;vector<int> a(n);for (auto& i : a)cin >> i;
    sort(a.begin(), a.end());
    ll ans = 0;
    for (int i = 1;i < n;i++) {
        ans += a[i] - a[i - 1];
    }
    cout<<ans<<'\n';
}

B. Sasha and the Drawing

一个大小为 n×n 的正方形网格,在网格中给一些单元格涂上颜色。但是给单元格上色很困难,所以他想给尽可能少的单元格上色。但与此同时,他希望至少k 个对角线上至少有一个着色的单元格。请注意,大小为 n×n 的正方形网格共有 4n2 条对角线。

帮助小萨沙让女孩爱上他,并告诉他需要涂色的最小单元格数。

void solve() {
    int n, k;cin >> n >> k;
    int ans = 0;
    ans = (k + 1) / 2;
    if (k >= (4 * n - 4))
        ans += (k - 4 * n + 4);
    cout << ans << '\n';
}

C. Sasha and the Casino

给出 k,x,a (倍数,最多输几场,本钱),输出是否能够稳定的赢钱

void solve() {
    ll k, x, a;
    cin >> k >> x >> a;
    k -= 1;
    ll s = 0;
    for (int i = 0; i <= x && a >= s; i++) {
        s += s / k + 1;
    }
    cout << (a >= s ? "YES" : "NO") << "\n";
}

D. Sasha and a Walk in the City