195152025-12-12 09:55:51dfehervariFázis szinkronizáláscpp17Elfogadva 100/100101ms5032 KiB
/*
Az én megoldásom időlimites

jó megoldás:
    // minden ertekre megnezzuk, hogy mennyibe kerulne
	// hogy "korbemenjen"
	// vagyis az elotte levo nalanal kisebb ertekik visszajusson
	// ezeknek a minimuma a valasz

*/

#include <iostream>
#include <vector>

using namespace std;

struct F
{
    int fazis;
    int db;
};


int main(){
    //Adatok betöltése
    int N,M;
    cin>>N>>M;
    vector<int> adatok(N);
    for(int i=0;i<N;++i) cin>>adatok[i];

    //Az egyes fázisok számának tárolása
    vector<int> fazisok(M);
    for(int i=0;i<N;++i) fazisok[adatok[i]]+=1;

    //for(int i=0;i<M;++i) cout<<fazisok[i]<<";";

    vector<int> letezofazis;
    for(int i=0;i<M;++i) 
        if (fazisok[i]!=0) letezofazis.push_back(i);
    
    int lfdb;
    lfdb = letezofazis.size();

    //for(int i=0;i<lfdb;++i) letezofazis.push_back(letezofazis[i]+M);
    //for(int i=0;i<2*lfdb;++i) cout<<letezofazis[i]<<"-";
    int i,hossz,minhossz,minhely;
    minhossz = letezofazis[lfdb-1]-letezofazis[0];
    minhely = 0;


    for(i=1;i<lfdb;++i){
        /*
        hossz = 0;
        for(int j=0;j<lfdb-1;++j){
            hossz=hossz+(letezofazis[i+j+1]-letezofazis[i+j]);
            
        }
        */
        hossz = letezofazis[i-1]+M-letezofazis[i];
        if (hossz<minhossz) {
            minhossz=hossz;
            minhely=i;
        }
        
    }
    cout<<minhossz<<"\n";
    //cout<<minhossz<<"-"<<minhely<<"\n";
    if(minhossz!=0) for(int i=0;i<minhossz;++i) cout<<(letezofazis[minhely]+i)%M<<" ";



        




    //cin.get();
    //cin.get();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
3Elfogadva1ms508 KiB
subtask210/10
4Elfogadva1ms316 KiB
5Elfogadva1ms356 KiB
6Elfogadva1ms508 KiB
7Elfogadva1ms548 KiB
subtask315/15
8Elfogadva1ms316 KiB
9Elfogadva1ms356 KiB
10Elfogadva1ms508 KiB
11Elfogadva1ms548 KiB
12Elfogadva1ms316 KiB
13Elfogadva1ms316 KiB
14Elfogadva1ms316 KiB
15Elfogadva1ms316 KiB
16Elfogadva1ms316 KiB
subtask425/25
17Elfogadva1ms316 KiB
18Elfogadva1ms356 KiB
19Elfogadva1ms508 KiB
20Elfogadva1ms548 KiB
21Elfogadva1ms316 KiB
22Elfogadva1ms316 KiB
23Elfogadva1ms316 KiB
24Elfogadva1ms316 KiB
25Elfogadva1ms316 KiB
26Elfogadva14ms1644 KiB
27Elfogadva86ms2472 KiB
28Elfogadva92ms2732 KiB
29Elfogadva37ms2140 KiB
30Elfogadva92ms2864 KiB
subtask520/20
31Elfogadva1ms316 KiB
32Elfogadva1ms356 KiB
33Elfogadva1ms508 KiB
34Elfogadva1ms548 KiB
35Elfogadva1ms316 KiB
36Elfogadva1ms316 KiB
37Elfogadva1ms316 KiB
38Elfogadva1ms316 KiB
39Elfogadva1ms316 KiB
40Elfogadva98ms4008 KiB
41Elfogadva93ms3612 KiB
42Elfogadva70ms1844 KiB
43Elfogadva101ms4876 KiB
44Elfogadva37ms2100 KiB
45Elfogadva18ms1372 KiB
46Elfogadva68ms1844 KiB
subtask630/30
47Elfogadva1ms316 KiB
48Elfogadva1ms356 KiB
49Elfogadva1ms508 KiB
50Elfogadva1ms548 KiB
51Elfogadva1ms316 KiB
52Elfogadva1ms316 KiB
53Elfogadva1ms316 KiB
54Elfogadva1ms316 KiB
55Elfogadva1ms316 KiB
56Elfogadva14ms1644 KiB
57Elfogadva86ms2472 KiB
58Elfogadva92ms2732 KiB
59Elfogadva37ms2140 KiB
60Elfogadva92ms2864 KiB
61Elfogadva98ms4008 KiB
62Elfogadva93ms3612 KiB
63Elfogadva70ms1844 KiB
64Elfogadva101ms4876 KiB
65Elfogadva37ms2100 KiB
66Elfogadva18ms1372 KiB
67Elfogadva68ms1844 KiB
68Elfogadva97ms3896 KiB
69Elfogadva101ms5032 KiB
70Elfogadva79ms2868 KiB
71Elfogadva100ms4008 KiB
72Elfogadva97ms3504 KiB