197852025-12-22 16:44:24szabel26Hírlánccpp17Hibás válasz 18/80186ms17464 KiB
// hirlanc.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <vector>
using namespace std;

struct adat {
    vector<int>be;
    int sz = 0, tav = 0;
    bool lat = 0, kor = 0;
};

vector<adat>x;

pair<int, int>sol = { 0,0 };

int n, hossz, db, tav;

bool kor(int akt, int kezd)
{
    x[akt].lat = true;
    ++tav;
    if (x[x[akt].sz].kor)
    {
        x[akt].lat = false;
        x[akt].kor = false;
        return false;
    }
    else
    {
        if (x[akt].sz == kezd)
        {
            x[akt].lat = false;

            x[x[akt].sz].tav = tav + 1;
            x[akt].tav = tav;

            x[x[akt].sz].kor = true;
            x[akt].kor = true;
            return true;
        }
        else if (x[x[akt].sz].lat)
        {
            x[akt].lat = false;
            x[akt].kor = false;
            return false;
        }

        if (kor(x[akt].sz, kezd))
        {
            x[akt].lat = false;
            x[akt].tav = tav;
            x[akt].kor = true;
            return true;
        }
        else
        {
            x[akt].lat = false;
            x[akt].kor = false;
            return false;
        }
    }

}

void bejar(int akt, int tav)
{
    x[akt].lat = 1;
    x[akt].tav = tav;
    for (auto& e : x[akt].be)
    {
        if (!x[e].lat && !x[e].kor)
        {
            bejar(e, tav + 1);
        }
    }
}

int main()
{
    cin >> n;

    x.resize(n + 1);
    int a = 0;
    for (int i = 1; i <= n; ++i)
    {
        cin >> a;
        x[i].sz = a;
        x[a].be.push_back(i);
    }

    for (int i = 1; i <= n; ++i)
    {
        tav = 0;
        if (!x[i].kor) kor(i, i);
    }

    for (int i = 1; i <= n; ++i)
    {
        if (x[i].kor) bejar(i, x[i].tav);
        if (x[i].tav > sol.second)
        {
            sol.first = i;
            sol.second = x[i].tav;
        }
    }

    cout << sol.first << " " << sol.second;
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask20/20
2Hibás válasz2ms316 KiB
3Elfogadva2ms316 KiB
4Hibás válasz2ms504 KiB
5Elfogadva2ms508 KiB
6Hibás válasz2ms316 KiB
7Elfogadva2ms316 KiB
8Hibás válasz2ms316 KiB
9Hibás válasz2ms332 KiB
10Elfogadva2ms316 KiB
11Elfogadva2ms316 KiB
12Elfogadva2ms492 KiB
subtask318/18
13Elfogadva162ms14388 KiB
14Elfogadva135ms14324 KiB
15Elfogadva137ms14560 KiB
16Elfogadva162ms14508 KiB
17Elfogadva142ms15296 KiB
18Elfogadva140ms15412 KiB
19Elfogadva165ms15412 KiB
20Elfogadva165ms15412 KiB
21Elfogadva138ms16968 KiB
22Elfogadva142ms17464 KiB
subtask40/42
23Elfogadva1ms316 KiB
24Hibás válasz2ms316 KiB
25Elfogadva2ms316 KiB
26Hibás válasz2ms504 KiB
27Elfogadva2ms508 KiB
28Hibás válasz2ms316 KiB
29Elfogadva2ms316 KiB
30Hibás válasz2ms316 KiB
31Hibás válasz2ms332 KiB
32Elfogadva2ms316 KiB
33Elfogadva2ms316 KiB
34Elfogadva2ms492 KiB
35Elfogadva162ms14388 KiB
36Elfogadva135ms14324 KiB
37Elfogadva137ms14560 KiB
38Elfogadva162ms14508 KiB
39Elfogadva142ms15296 KiB
40Elfogadva140ms15412 KiB
41Elfogadva165ms15412 KiB
42Elfogadva165ms15412 KiB
43Elfogadva138ms16968 KiB
44Elfogadva142ms17464 KiB
45Elfogadva141ms12344 KiB
46Elfogadva177ms12008 KiB
47Elfogadva168ms12080 KiB
48Hibás válasz143ms12164 KiB
49Elfogadva166ms12228 KiB
50Hibás válasz151ms12596 KiB
51Elfogadva186ms12852 KiB
52Hibás válasz179ms13232 KiB
53Hibás válasz137ms12904 KiB
54Hibás válasz163ms13108 KiB