231512026-01-16 14:04:22MatematikaIntervallumok (45 pont)cpp17Wrong answer 20/4581ms4496 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n; cin >> n;
    vector<int> vec(n),osztok;
    vector<vector<int>> hosszok;
    vector<int> kozoshossz;
    for(auto& z:vec)
        cin >> z;
    for(int i=1; i<=sqrt(n); i++)
    {
        if(n%i==0)
        {
            osztok.push_back(i);
            if(i!=n/i)
                osztok.push_back(n/i);
        }
    }
    sort(osztok.begin(),osztok.end());
    osztok.pop_back();
    /*for(auto& z:osztok)
        cerr << z << " ";*/
    for(auto& z:osztok)
    {
        int hossz=0;
        int kezdo=0,veg=0;
        while(veg<n && kezdo<n)
        {
            veg=n/z - 1 + kezdo;
            hossz=max(hossz, vec[veg]-vec[kezdo]);
            kezdo=veg+1;
            //cerr << veg << " ";
        }
        bool lehet=true;
        vector<int> kezdesek;
        int aktualis=n/z-1;
        cerr << hossz << "\n";
        while(aktualis<n && lehet)
        {
        //cerr << aktualis << " " << hossz << "\n";
            kezdesek.push_back(vec[aktualis]-hossz);
            int utso=kezdesek.back(),utsoelotti=kezdesek[kezdesek.size()-2]+hossz;
            if(kezdesek.size()>1 && (utso<utsoelotti))// && utso>=0 && utsoelotti>=0) || (utso>utsoelotti && utso<=0 && utsoelotti<=0)
            {
                //cerr << utso << " szar " << utsoelotti << "\n";
                kezdesek.pop_back();
                kezdesek.push_back(utsoelotti+1);
                if(vec[aktualis+1]<=kezdesek.back()+hossz)
                    lehet=false;
            }
            aktualis+=n/z;
        }
        if(lehet)
        {
            hosszok.push_back(kezdesek);
            kozoshossz.push_back(hossz);
        }
    }
    cout << hosszok.size() << "\n";
    for(int i=0; i<hosszok.size(); i++)
    {
        cout << hosszok[i].size() << " " << kozoshossz[i] << "\n";
        for(auto& z:hosszok[i])
        {
            cout << z << "\n";
        }
        //cout << "\n";
    }
}
SubtaskSumTestVerdictTimeMemory
base20/45
1Accepted0/01ms316 KiB
2Wrong answer0/01ms316 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms512 KiB
5Wrong answer0/11ms316 KiB
6Accepted1/14ms440 KiB
7Accepted1/146ms564 KiB
8Wrong answer0/21ms316 KiB
9Wrong answer0/235ms1096 KiB
10Wrong answer0/239ms1692 KiB
11Wrong answer0/235ms1328 KiB
12Wrong answer0/239ms1576 KiB
13Wrong answer0/235ms1436 KiB
14Accepted2/24ms564 KiB
15Accepted2/27ms680 KiB
16Accepted2/29ms820 KiB
17Accepted2/214ms968 KiB
18Accepted2/214ms1076 KiB
19Accepted2/250ms1700 KiB
20Wrong answer0/278ms4412 KiB
21Accepted2/281ms4496 KiB
22Wrong answer0/271ms3660 KiB
23Wrong answer0/276ms4172 KiB
24Accepted2/228ms564 KiB
25Wrong answer0/241ms2280 KiB
26Wrong answer0/252ms3304 KiB
27Wrong answer0/239ms564 KiB