185642025-10-27 10:09:05KristófHírlánccpp17Hibás válasz 0/8092ms11220 KiB
#include <iostream>
#include <vector>
using namespace std;

vector<int> graph;
vector<bool> visited;
vector<int> length_of_message;
void dfs(int s)
{
visited[s]=true;
if(length_of_message[graph[s]]!=-1)
    {
    length_of_message[s]=length_of_message[graph[s]]+1;
    return;
    }
if(visited[graph[s]] )
    {
    int cnt=1;
    int i=graph[s];

    while(i!=s && cnt<10)
        {
        //cout<<i<<" "<<s<<endl;
        cnt++;
        i=graph[i];
        }
    length_of_message[i]=cnt;
    i=graph[s];

    while(i!=s)
        {
        length_of_message[i]=cnt;
        i=graph[i];
        }
    }
//cout<<"a";
if(!visited[graph[s]])
    dfs(graph[s]);
if(length_of_message[s]==-1)
    {
    length_of_message[s]=length_of_message[graph[s]]+1;
    }
return;
}


int main()
{
    int n;
    cin>>n;
    graph.resize(n+1);
    length_of_message.resize(n+1,-1);
    visited.resize(n+1,false);
    for(int i=1;i<=n;i++)
        {
        cin>>graph[i];
        }
    int max=-1,start;
    for(int i=1;i<=n;i++)
        {
        if(!visited[i])
            {
            dfs(i);
            }
        if(length_of_message[i]>max)
            {
            max=length_of_message[i];
            start=i;
            }
        }
    cout<<start<<" "<<max;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask20/20
2Hibás válasz2ms316 KiB
3Hibás válasz2ms316 KiB
4Hibás válasz1ms316 KiB
5Hibás válasz2ms316 KiB
6Hibás válasz2ms604 KiB
7Hibás válasz2ms316 KiB
8Hibás válasz2ms316 KiB
9Hibás válasz2ms316 KiB
10Hibás válasz1ms316 KiB
11Hibás válasz2ms316 KiB
12Hibás válasz2ms316 KiB
subtask30/18
13Hibás válasz78ms2004 KiB
14Hibás válasz78ms2004 KiB
15Hibás válasz79ms2100 KiB
16Hibás válasz81ms2516 KiB
17Hibás válasz85ms4660 KiB
18Hibás válasz85ms5168 KiB
19Hibás válasz86ms5080 KiB
20Hibás válasz86ms5072 KiB
21Hibás válasz89ms9524 KiB
22Hibás válasz92ms11220 KiB
subtask40/42
23Elfogadva1ms316 KiB
24Hibás válasz2ms316 KiB
25Hibás válasz2ms316 KiB
26Hibás válasz1ms316 KiB
27Hibás válasz2ms316 KiB
28Hibás válasz2ms604 KiB
29Hibás válasz2ms316 KiB
30Hibás válasz2ms316 KiB
31Hibás válasz2ms316 KiB
32Hibás válasz1ms316 KiB
33Hibás válasz2ms316 KiB
34Hibás válasz2ms316 KiB
35Hibás válasz78ms2004 KiB
36Hibás válasz78ms2004 KiB
37Hibás válasz79ms2100 KiB
38Hibás válasz81ms2516 KiB
39Hibás válasz85ms4660 KiB
40Hibás válasz85ms5168 KiB
41Hibás válasz86ms5080 KiB
42Hibás válasz86ms5072 KiB
43Hibás válasz89ms9524 KiB
44Hibás válasz92ms11220 KiB
45Hibás válasz76ms2008 KiB
46Hibás válasz78ms1844 KiB
47Hibás válasz79ms2100 KiB
48Hibás válasz76ms2256 KiB
49Hibás válasz78ms2516 KiB
50Hibás válasz79ms3124 KiB
51Hibás válasz79ms3124 KiB
52Hibás válasz78ms3284 KiB
53Hibás válasz79ms4148 KiB
54Hibás válasz79ms4916 KiB