264592026-03-28 22:47:09kukkermanIntervallumok (45 pont)cpp17Elfogadva 45/4535ms4528 KiB
#include <iostream>
#include <vector>
#include <algorithm>

std::vector<int> beolvas(std::istream &be = std::cin) {
    int n;
    be >> n;

    std::vector<int> v(n);
    for (auto &x : v) {
        be >> x;
    }

    return v;
}

void intervallumok(const std::vector<int> &v) {
    const int n = static_cast<int>(v.size());

    std::vector<std::vector<int>> iv;
    iv.emplace_back();
    for (int j = 1; j < n; j++) {
        if (n % j > 0) {
            continue;
        }
        const int k = n / j;

        int h = 0;
        for (int i = 0; i < n; i += k) {
            h = std::max(h, v[i + k - 1] - v[i]);
        }

        auto &kezd = iv.back();
        kezd.push_back(v[k - 1] - h);

        int i;
        for (i = k; i < n && kezd.back() + h < v[i]; i += k) {
            kezd.push_back(std::max(kezd.back() + h + 1, v[i + k - 1] - h));
        }

        if (i == n) {
            kezd.push_back(h);
            iv.emplace_back();

        } else {
            kezd.clear();
        }
    }
    iv.pop_back();

    using std::cout;

    cout << iv.size() << '\n';
    for (auto &kezd : iv) {
        const int h = kezd.back();
        kezd.pop_back();

        cout << kezd.size() << ' ' << h << '\n';
        for (const auto k: kezd) {
            cout << k << '\n';
        }
    }
}

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);

    const auto v = beolvas();
    intervallumok(v);

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base45/45
1Elfogadva0/01ms512 KiB
2Elfogadva0/01ms508 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/12ms316 KiB
7Elfogadva1/114ms820 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/213ms1328 KiB
10Elfogadva2/216ms1628 KiB
11Elfogadva2/214ms1336 KiB
12Elfogadva2/214ms1588 KiB
13Elfogadva2/214ms1332 KiB
14Elfogadva2/23ms580 KiB
15Elfogadva2/24ms564 KiB
16Elfogadva2/24ms820 KiB
17Elfogadva2/27ms1076 KiB
18Elfogadva2/26ms1048 KiB
19Elfogadva2/219ms1652 KiB
20Elfogadva2/235ms4476 KiB
21Elfogadva2/235ms4528 KiB
22Elfogadva2/230ms3712 KiB
23Elfogadva2/234ms4276 KiB
24Elfogadva2/28ms564 KiB
25Elfogadva2/217ms2100 KiB
26Elfogadva2/224ms3316 KiB
27Elfogadva2/213ms564 KiB