231242026-01-16 12:51:27MatematikaIntervallumok (45 pont)cpp17Hibás válasz 16/4579ms4496 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;
        while(aktualis<n)
        {
        //cerr << aktualis << " " << hossz << "\n";
            kezdesek.push_back(vec[aktualis]-hossz);
            aktualis+=n/z;
            if(kezdesek.size()>1 && kezdesek.back()<kezdesek[kezdesek.size()-2]+hossz)
            {
                //cerr << kezdesek.back() << " mi a szar " << kezdesek[kezdesek.size()-2]+hossz << "\n";
                lehet=false;
            }
        }
        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";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base16/45
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms508 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Hibás válasz0/11ms316 KiB
6Elfogadva1/16ms316 KiB
7Elfogadva1/148ms1132 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/232ms1180 KiB
10Hibás válasz0/237ms1432 KiB
11Hibás válasz0/230ms820 KiB
12Hibás válasz0/237ms1588 KiB
13Hibás válasz0/232ms1180 KiB
14Elfogadva2/24ms568 KiB
15Elfogadva2/28ms564 KiB
16Elfogadva2/29ms820 KiB
17Elfogadva2/214ms1076 KiB
18Hibás válasz0/214ms1056 KiB
19Elfogadva2/252ms1656 KiB
20Hibás válasz0/275ms4348 KiB
21Elfogadva2/279ms4496 KiB
22Hibás válasz0/265ms3188 KiB
23Hibás válasz0/271ms3896 KiB
24Hibás válasz0/228ms820 KiB
25Hibás válasz0/235ms1316 KiB
26Hibás válasz0/250ms2756 KiB
27Hibás válasz0/241ms1072 KiB