229882026-01-16 10:23:31KevinIntervallumok (45 pont)cpp14Accepted 45/4539ms6252 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pll=pair<ll, ll>;

ll n;
vector<ll> vec;
vector<vector<ll>> out;

void v(ll x){
    vector<ll> megoldas(1, n/x);
    ll hossz=0;
    for (ll i=0; i<n; i+=x)
        hossz=max(hossz, vec[i+x-1]-vec[i]);
    megoldas.push_back(hossz);
    ll current=vec[x-1]-hossz;
    for (ll i=0; i<n; i+=x){
        megoldas.push_back(current);
        current=max(current+hossz, vec[i+x-1]);
        if (i!=n-x && current>=vec[i+x]) return;
        current++;
        if (i!=n-x) current=max(current, vec[i+x+x-1]-hossz);
    }
    out.push_back(megoldas);
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> n;
    vec.assign(n, 0);
    for (ll i=0; i<n; i++) cin >> vec[i];
    for (ll i=2; i<=n; i++){
        if (n%i==0){
            v(i);
        }
    }
    cout << out.size() << '\n';
    for (auto& z:out){
        cout << z[0] << ' ' << z[1] << '\n';
        for (ll i=2; i<z.size(); i++) cout << z[i] << '\n';
    }
}
SubtaskSumTestVerdictTimeMemory
base45/45
1Accepted0/01ms500 KiB
2Accepted0/01ms500 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted1/11ms316 KiB
6Accepted1/12ms316 KiB
7Accepted1/117ms2096 KiB
8Accepted2/21ms316 KiB
9Accepted2/214ms1676 KiB
10Accepted2/217ms2056 KiB
11Accepted2/216ms2300 KiB
12Accepted2/217ms2056 KiB
13Accepted2/216ms2312 KiB
14Accepted2/23ms564 KiB
15Accepted2/24ms784 KiB
16Accepted2/24ms820 KiB
17Accepted2/27ms1328 KiB
18Accepted2/27ms1068 KiB
19Accepted2/221ms3192 KiB
20Accepted2/237ms6252 KiB
21Accepted2/239ms5732 KiB
22Accepted2/232ms5596 KiB
23Accepted2/237ms5992 KiB
24Accepted2/29ms820 KiB
25Accepted2/218ms2524 KiB
26Accepted2/225ms3816 KiB
27Accepted2/214ms1076 KiB