233462026-01-20 11:24:23abcdIntervallumok (45 pont)cpp17Wrong answer 0/4579ms5564 KiB
#include <bits/stdc++.h>
using namespace std;
using pii=pair<int,int>;
using ll=long long;

int main(){
    int n;cin>>n;
    vector<int> vec(n+1),pref(n+1),dif(n+1);
    for(int i=1;i<=n;i++){
        int a;cin>>a;
        vec[i]=a;
        dif[i]=a-vec[i-1]-1;
        pref[i]=pref[i-1]+dif[i]+1;
        if(i==1){
            dif[1]=0;
            pref[1]=0;
        }
    }
    dif[0]=INT_MAX;//min(1LL*INT_MAX,1LL*vec[1]-1e9);
    vector<pii> ans;
    vector<vector<int>> starts;
    ans.push_back({1,pref[n]});
    starts.push_back({vec[1]});
    for(int ii=2;ii*ii<=n;ii++){
        if(n%ii)continue;
        vector<int> iii;
        if(ii*ii==n) iii={ii};
        else iii={ii,n/ii};
        for(int i:iii){
            int len=0;
            vector<int> kellmeg(n+1);
            for(int j=i;j<=n;j+=i){
                len=max(len,vec[j]-vec[j-i+1]);
                kellmeg[j]=vec[j]-vec[j-i+1];
            }
            for(int j=i;j<=n;j+=i){
                kellmeg[j]=len-kellmeg[j];
            }
            vector<int> seged=dif,kezdo;
            bool ok=true;
            for(int j=i;j<=n;j+=i){
                int x=0;
                if(seged[j-i]>=kellmeg[j]){
                    kezdo.push_back(vec[j-i+1]-kellmeg[j]);
                    continue;
                }else{
                    x=kellmeg[j]-seged[j-i];
                    kezdo.push_back(vec[j-i+1]-seged[j-i]);
                }
                if(j==n||x>seged[j+1]){
                    ok=false;break;
                }else seged[j+1]-=x;
            }
            if(ok){
                ans.push_back({i,len});
                starts.push_back(kezdo);
            }
        }
    }
    cout<<ans.size()<<'\n';
    for(int i=0;i<(int)ans.size();i++){
        cout<<ans[i].first<<' '<<ans[i].second<<'\n';
        for(int j:starts[i])cout<<j<<'\n';
    }
}
SubtaskSumTestVerdictTimeMemory
base0/45
1Accepted0/01ms316 KiB
2Wrong answer0/01ms316 KiB
3Wrong answer0/11ms316 KiB
4Wrong answer0/11ms316 KiB
5Wrong answer0/12ms512 KiB
6Wrong answer0/16ms520 KiB
7Wrong answer0/146ms2356 KiB
8Wrong answer0/21ms316 KiB
9Wrong answer0/235ms2388 KiB
10Wrong answer0/237ms2640 KiB
11Wrong answer0/235ms2388 KiB
12Wrong answer0/237ms2516 KiB
13Wrong answer0/234ms2388 KiB
14Wrong answer0/24ms564 KiB
15Wrong answer0/26ms684 KiB
16Wrong answer0/28ms828 KiB
17Wrong answer0/213ms1144 KiB
18Wrong answer0/213ms1092 KiB
19Wrong answer0/252ms3000 KiB
20Wrong answer0/271ms5560 KiB
21Wrong answer0/272ms5564 KiB
22Wrong answer0/268ms4988 KiB
23Wrong answer0/271ms5252 KiB
24Wrong answer0/248ms1528 KiB
25Wrong answer0/241ms3032 KiB
26Wrong answer0/248ms3796 KiB
27Wrong answer0/279ms2052 KiB