198342025-12-25 10:40:02szabel26Hírlánccpp17Elfogadva 80/80187ms17460 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;
    if (x[akt].tav == 0 || tav > x[akt].tav) x[akt].tav = tav;
    for (auto& e : x[akt].be)
    {
        if (!x[e].lat && !x[e].kor)
        {
            bejar(e, tav + 1);
        }
    }
    x[akt].lat = 0;
}

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);
    }

    for (int i = 1; i <= n; ++i)
    {
        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
subtask220/20
2Elfogadva2ms316 KiB
3Elfogadva2ms316 KiB
4Elfogadva2ms500 KiB
5Elfogadva2ms572 KiB
6Elfogadva2ms316 KiB
7Elfogadva2ms316 KiB
8Elfogadva2ms316 KiB
9Elfogadva2ms316 KiB
10Elfogadva2ms316 KiB
11Elfogadva2ms316 KiB
12Elfogadva2ms316 KiB
subtask318/18
13Elfogadva162ms14412 KiB
14Elfogadva140ms14360 KiB
15Elfogadva141ms14540 KiB
16Elfogadva166ms14664 KiB
17Elfogadva168ms15412 KiB
18Elfogadva136ms15412 KiB
19Elfogadva172ms15540 KiB
20Elfogadva141ms15404 KiB
21Elfogadva150ms16948 KiB
22Elfogadva127ms17460 KiB
subtask442/42
23Elfogadva1ms500 KiB
24Elfogadva2ms316 KiB
25Elfogadva2ms316 KiB
26Elfogadva2ms500 KiB
27Elfogadva2ms572 KiB
28Elfogadva2ms316 KiB
29Elfogadva2ms316 KiB
30Elfogadva2ms316 KiB
31Elfogadva2ms316 KiB
32Elfogadva2ms316 KiB
33Elfogadva2ms316 KiB
34Elfogadva2ms316 KiB
35Elfogadva162ms14412 KiB
36Elfogadva140ms14360 KiB
37Elfogadva141ms14540 KiB
38Elfogadva166ms14664 KiB
39Elfogadva168ms15412 KiB
40Elfogadva136ms15412 KiB
41Elfogadva172ms15540 KiB
42Elfogadva141ms15404 KiB
43Elfogadva150ms16948 KiB
44Elfogadva127ms17460 KiB
45Elfogadva144ms12340 KiB
46Elfogadva170ms12084 KiB
47Elfogadva148ms12084 KiB
48Elfogadva172ms12280 KiB
49Elfogadva180ms12336 KiB
50Elfogadva187ms12596 KiB
51Elfogadva184ms13100 KiB
52Elfogadva170ms13208 KiB
53Elfogadva152ms12852 KiB
54Elfogadva146ms13108 KiB