234992026-01-23 20:50:48abcdIntervallumok (45 pont)cpp17Elfogadva 45/4565ms4496 KiB
#include <bits/stdc++.h>
using namespace std;
using pii=pair<int,int>;

int main(){
    int n;cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;i++)cin>>a[i];
    vector<pii> ans;
    vector<vector<int>> starts;
    for(int db=1;db<n;db++){
        if(n%db)continue;
        int len=n/db;
        int mx=0;
        for(int i=0;i<n;i+=len){
            mx=max(mx,a[i+len-1]-a[i]);
        }
        vector<int> cur;
        cur.push_back(a[len-1]-mx);
        int prev=a[len-1];
        bool ok=true;
        for(int i=len;i<n;i+=len){
            int jo=a[i+len-1]-mx, rossz=prev+1;
            int start=max(jo,rossz);
            int r=jo>=rossz ? 0 : rossz-jo;
            int end=a[i+len-1]+r;
            if(i+len<n&&end>=a[i+len])ok=false;
            prev=end;
            cur.push_back(start);
        }
        if(ok){
            ans.push_back({db,mx});
            starts.push_back(cur);
        }
    }
    cout<<ans.size()<<'\n';
    for(int i=0;i<(int)ans.size();i++){
        cout<<ans[i].first<<' '<<ans[i].second<<'\n';
        for(int x:starts[i])cout<<x<<' ';
        cout<<'\n';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base45/45
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/12ms316 KiB
6Elfogadva1/14ms508 KiB
7Elfogadva1/145ms1132 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/230ms1192 KiB
10Elfogadva2/234ms1692 KiB
11Elfogadva2/232ms1408 KiB
12Elfogadva2/234ms1688 KiB
13Elfogadva2/232ms1440 KiB
14Elfogadva2/24ms564 KiB
15Elfogadva2/26ms828 KiB
16Elfogadva2/28ms820 KiB
17Elfogadva2/212ms1076 KiB
18Elfogadva2/212ms892 KiB
19Elfogadva2/246ms1820 KiB
20Elfogadva2/264ms4332 KiB
21Elfogadva2/265ms4496 KiB
22Elfogadva2/261ms3660 KiB
23Elfogadva2/264ms4172 KiB
24Elfogadva2/227ms820 KiB
25Elfogadva2/237ms2096 KiB
26Elfogadva2/243ms3308 KiB
27Elfogadva2/239ms988 KiB