Submission #1169373

#TimeUsernameProblemLanguageResultExecution timeMemory
1169373vijwal연결리스트 수사하기 (NOI12_forensic)C++20
10 / 25
180 ms496 KiB
#include <bits/stdc++.h>
using namespace std;

int a[20005];
int n;

int check(){
    int i=0;
    int len=0;
    while(i!=-1){
        i=a[i];
        len++;
        if(len > 100){len=0; break;}
    }
    return len;
}

int main(){
    cin >> n;
    for(int i=0; i<n; i++){cin >> a[i];}
    
    int mxlen=0;
    
    vector<int> init = {0};
    int i=0;
    int len=0;
    while(i!=-1){
        i=a[i];
        init.push_back(i);
        len++;
        if(len > 100){break;}
    }

    for(int i: init){
        for(int j=-1; j<n; j++){
            int temp = a[i];
            a[i] = j;
            mxlen = max(mxlen, check());
            a[i] = temp;
        }
    }
    
    cout << mxlen << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...