189912025-11-13 20:41:44MagyarKendeSZLGIntervallumok (45 pont)cpp17Accepted 45/4543ms6180 KiB
#include <bits/stdc++.h>
using namespace std;
#define int int64_t

int32_t main() {
    cin.tie(0), ios::sync_with_stdio(0);
    int n;
    cin >> n;
    vector<int> a(n);
    for (int& x : a) cin >> x;

    vector<vector<int>> res;
    vector<int> res_w;
    for (int k = 1; k < n; k++) {
        if (n % k) continue;
        int nk = n / k;
        int w = 0;
        for (int i = nk - 1; i < n; i += nk) {
            int j = i - nk + 1;
            w = max(w, a[i] - a[j]);
        }
        bool ok = 1;
        vector<int> cur;
        int tip = a[nk - 1] - w;
        cur.push_back(tip);
        tip += w;
        for (int i = 2 * nk - 1; i < n; i += nk) {
            int j = i - nk + 1;
            if (tip >= a[j]) {
                ok = 0;
                break;
            }
            tip = max(tip + 1, a[i] - w);
            cur.push_back(tip);
            tip += w;
        }
        if (!ok) continue;
        res_w.push_back(w);
        res.push_back(cur);
    }

    cout << res.size() << "\n";
    for (int i = 0; i < (int)res.size(); i++) {
        cout << res[i].size() << " " << res_w[i] << "\n";
        for (int x : res[i]) cout << x << "\n";
    }
}
SubtaskSumTestVerdictTimeMemory
base45/45
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted1/11ms316 KiB
6Accepted1/13ms504 KiB
7Accepted1/117ms1076 KiB
8Accepted2/21ms316 KiB
9Accepted2/216ms1724 KiB
10Accepted2/218ms2108 KiB
11Accepted2/216ms1876 KiB
12Accepted2/217ms2104 KiB
13Accepted2/216ms1944 KiB
14Accepted2/23ms564 KiB
15Accepted2/24ms820 KiB
16Accepted2/24ms1076 KiB
17Accepted2/28ms1332 KiB
18Accepted2/28ms1300 KiB
19Accepted2/223ms2340 KiB
20Accepted2/241ms5928 KiB
21Accepted2/243ms6180 KiB
22Accepted2/235ms4896 KiB
23Accepted2/241ms5608 KiB
24Accepted2/210ms820 KiB
25Accepted2/220ms3156 KiB
26Accepted2/228ms4424 KiB
27Accepted2/214ms1076 KiB