198322025-12-25 10:24:30szabel26Hírlánccpp17Hibás válasz 18/80203ms17436 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);
        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álasz2ms316 KiB
5Elfogadva2ms508 KiB
6Hibás válasz2ms316 KiB
7Elfogadva2ms316 KiB
8Hibás válasz2ms508 KiB
9Hibás válasz2ms316 KiB
10Elfogadva2ms596 KiB
11Elfogadva3ms316 KiB
12Elfogadva2ms316 KiB
subtask318/18
13Elfogadva172ms14264 KiB
14Elfogadva175ms14332 KiB
15Elfogadva174ms14444 KiB
16Elfogadva143ms14668 KiB
17Elfogadva184ms15412 KiB
18Elfogadva143ms15424 KiB
19Elfogadva185ms15496 KiB
20Elfogadva141ms15468 KiB
21Elfogadva168ms16948 KiB
22Elfogadva174ms17436 KiB
subtask40/42
23Elfogadva1ms500 KiB
24Hibás válasz2ms316 KiB
25Elfogadva2ms316 KiB
26Hibás válasz2ms316 KiB
27Elfogadva2ms508 KiB
28Hibás válasz2ms316 KiB
29Elfogadva2ms316 KiB
30Hibás válasz2ms508 KiB
31Hibás válasz2ms316 KiB
32Elfogadva2ms596 KiB
33Elfogadva3ms316 KiB
34Elfogadva2ms316 KiB
35Elfogadva172ms14264 KiB
36Elfogadva175ms14332 KiB
37Elfogadva174ms14444 KiB
38Elfogadva143ms14668 KiB
39Elfogadva184ms15412 KiB
40Elfogadva143ms15424 KiB
41Elfogadva185ms15496 KiB
42Elfogadva141ms15468 KiB
43Elfogadva168ms16948 KiB
44Elfogadva174ms17436 KiB
45Elfogadva181ms12252 KiB
46Elfogadva186ms12084 KiB
47Elfogadva187ms12084 KiB
48Hibás válasz150ms12196 KiB
49Elfogadva188ms12340 KiB
50Hibás válasz194ms12652 KiB
51Elfogadva148ms13048 KiB
52Hibás válasz203ms13268 KiB
53Hibás válasz148ms12844 KiB
54Hibás válasz190ms13112 KiB