195272025-12-12 16:33:13szabelrHírlánccpp17Elfogadva 80/8079ms3540 KiB
// hirlanc.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <map>
#include <vector>
#include <unordered_map>
#include <set>
using namespace std;

int main()
{
    int n,x,tanulo=1;
    cin >> n;
    vector<int> pairs(n+1);

    int best[200001];
    for (int i = 1; i <= n; i++)
    {
        cin >> x;
        pairs[i]=x;
        best[i] = 0;
    }
    
    int maxi = 0;
    vector<int> pontok(n + 1);
    vector<int> hely(n + 1, -1);
    for (int i = 1; i <= n; i++)
    {
        if (best[i] == 0) {
            int k = i;
            int og = i;
            int count = 0;
            
            while (hely[k]==-1 and best[k]==0)
            {
                pontok[count] = k;
                count++;
                hely[k] = count - 1;
                k = pairs[k];
            }
            if (best[k] != 0)
            {
                int a = best[k] + 1;
                for (int y = count - 1; y >= 0; y--)
                {
                    best[pontok[y]] = a;
                    a++;
                }
            }
            else
            {
                int size = count - hely[k];
                for (int j = hely[k]; j <= count - 1; j++)
                {
                    best[pontok[j]] = size;

                }
                int a = best[k] + 1;
                for (int j = hely[k] - 1; j >= 0; j--)
                {
                    best[pontok[j]] = a;
                    a++;

                }
            }
            
            if (best[i] > maxi)
            {
                maxi = best[i];
                tanulo = i;
            }
        }
    }
    cout << tanulo<<" "<<maxi;
}

// 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
2Elfogadva1ms508 KiB
3Elfogadva1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva1ms508 KiB
6Elfogadva1ms316 KiB
7Elfogadva1ms316 KiB
8Elfogadva2ms316 KiB
9Elfogadva1ms372 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms316 KiB
subtask318/18
13Elfogadva78ms3404 KiB
14Elfogadva78ms3384 KiB
15Elfogadva78ms3380 KiB
16Elfogadva78ms3384 KiB
17Elfogadva79ms3328 KiB
18Elfogadva79ms3396 KiB
19Elfogadva78ms3380 KiB
20Elfogadva79ms3516 KiB
21Elfogadva78ms3352 KiB
22Elfogadva76ms3312 KiB
subtask442/42
23Elfogadva1ms500 KiB
24Elfogadva1ms508 KiB
25Elfogadva1ms316 KiB
26Elfogadva1ms316 KiB
27Elfogadva1ms508 KiB
28Elfogadva1ms316 KiB
29Elfogadva1ms316 KiB
30Elfogadva2ms316 KiB
31Elfogadva1ms372 KiB
32Elfogadva1ms316 KiB
33Elfogadva1ms316 KiB
34Elfogadva1ms316 KiB
35Elfogadva78ms3404 KiB
36Elfogadva78ms3384 KiB
37Elfogadva78ms3380 KiB
38Elfogadva78ms3384 KiB
39Elfogadva79ms3328 KiB
40Elfogadva79ms3396 KiB
41Elfogadva78ms3380 KiB
42Elfogadva79ms3516 KiB
43Elfogadva78ms3352 KiB
44Elfogadva76ms3312 KiB
45Elfogadva78ms3404 KiB
46Elfogadva78ms3384 KiB
47Elfogadva76ms3384 KiB
48Elfogadva75ms3484 KiB
49Elfogadva78ms3380 KiB
50Elfogadva76ms3540 KiB
51Elfogadva76ms3380 KiB
52Elfogadva78ms3476 KiB
53Elfogadva78ms3532 KiB
54Elfogadva76ms3380 KiB