195252025-12-12 16:29:27szabelrHírlánccpp17Time limit exceeded 38/80600ms3804 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;
            vector<int> pontok;
            vector<int> hely(n+1,-1);
            while (hely[k]==-1 and best[k]==0)
            {
                pontok.push_back(k);
                hely[k] = pontok.size() - 1;
                k = pairs[k];
            }
            if (best[k] != 0)
            {
                int a = best[k] + 1;
                for (int y = pontok.size() - 1; y >= 0; y--)
                {
                    best[pontok[y]] = a;
                    a++;
                }
            }
            else
            {
                int size = pontok.size() - hely[k];
                for (int j = hely[k]; j <= pontok.size() - 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
6Accepted2ms500 KiB
7Accepted2ms316 KiB
8Accepted2ms432 KiB
9Accepted2ms416 KiB
10Accepted2ms316 KiB
11Accepted1ms424 KiB
12Accepted1ms412 KiB
subtask318/18
13Accepted296ms2680 KiB
14Accepted96ms2596 KiB
15Accepted82ms2608 KiB
16Accepted76ms2648 KiB
17Accepted76ms2988 KiB
18Accepted79ms3760 KiB
19Accepted76ms3528 KiB
20Accepted79ms3404 KiB
21Accepted79ms3804 KiB
22Accepted75ms3716 KiB
subtask40/42
23Accepted1ms500 KiB
24Accepted2ms512 KiB
25Accepted2ms316 KiB
26Accepted2ms316 KiB
27Accepted2ms316 KiB
28Accepted2ms500 KiB
29Accepted2ms316 KiB
30Accepted2ms432 KiB
31Accepted2ms416 KiB
32Accepted2ms316 KiB
33Accepted1ms424 KiB
34Accepted1ms412 KiB
35Accepted296ms2680 KiB
36Accepted96ms2596 KiB
37Accepted82ms2608 KiB
38Accepted76ms2648 KiB
39Accepted76ms2988 KiB
40Accepted79ms3760 KiB
41Accepted76ms3528 KiB
42Accepted79ms3404 KiB
43Accepted79ms3804 KiB
44Accepted75ms3716 KiB
45Time limit exceeded587ms2624 KiB
46Time limit exceeded587ms2576 KiB
47Time limit exceeded587ms2780 KiB
48Time limit exceeded600ms2720 KiB
49Time limit exceeded578ms2836 KiB
50Time limit exceeded579ms2860 KiB
51Time limit exceeded579ms2868 KiB
52Time limit exceeded600ms2840 KiB
53Time limit exceeded577ms3024 KiB
54Time limit exceeded578ms3248 KiB