195262025-12-12 16:31:47szabelrHírlánccpp17Time limit exceeded 20/80600ms3552 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;
    
    for (int i = 1; i <= n; i++)
    {
        if (best[i] == 0) {
            int k = i;
            int og = i;
            int count = 0;
            vector<int> pontok(n+1);
            vector<int> hely(n+1,-1);
            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
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask220/20
2Accepted2ms512 KiB
3Accepted2ms316 KiB
4Accepted2ms316 KiB
5Accepted2ms316 KiB
6Accepted2ms652 KiB
7Accepted2ms316 KiB
8Accepted2ms508 KiB
9Accepted2ms316 KiB
10Accepted2ms316 KiB
11Accepted1ms316 KiB
12Accepted1ms492 KiB
subtask30/18
13Time limit exceeded598ms3548 KiB
14Time limit exceeded600ms3540 KiB
15Accepted254ms3544 KiB
16Accepted120ms3536 KiB
17Accepted85ms3524 KiB
18Accepted81ms3448 KiB
19Accepted79ms3448 KiB
20Accepted79ms3444 KiB
21Accepted79ms3400 KiB
22Accepted78ms3360 KiB
subtask40/42
23Accepted1ms508 KiB
24Accepted2ms512 KiB
25Accepted2ms316 KiB
26Accepted2ms316 KiB
27Accepted2ms316 KiB
28Accepted2ms652 KiB
29Accepted2ms316 KiB
30Accepted2ms508 KiB
31Accepted2ms316 KiB
32Accepted2ms316 KiB
33Accepted1ms316 KiB
34Accepted1ms492 KiB
35Time limit exceeded598ms3548 KiB
36Time limit exceeded600ms3540 KiB
37Accepted254ms3544 KiB
38Accepted120ms3536 KiB
39Accepted85ms3524 KiB
40Accepted81ms3448 KiB
41Accepted79ms3448 KiB
42Accepted79ms3444 KiB
43Accepted79ms3400 KiB
44Accepted78ms3360 KiB
45Time limit exceeded587ms3536 KiB
46Time limit exceeded587ms3536 KiB
47Time limit exceeded587ms3540 KiB
48Time limit exceeded600ms3544 KiB
49Time limit exceeded578ms3540 KiB
50Time limit exceeded578ms3536 KiB
51Time limit exceeded578ms3552 KiB
52Time limit exceeded600ms3536 KiB
53Time limit exceeded584ms3548 KiB
54Time limit exceeded584ms3552 KiB