Submission #1340112

#TimeUsernameProblemLanguageResultExecution timeMemory
1340112ahmetlbktd4Krugomet (COCI25_krugomet)C++20
35 / 70
42 ms12708 KiB
#include "bits/stdc++.h"
using namespace std;

const int LOG = 30;
const int N = 2e5+5;

int a[N],pr[LOG][N],p[N];

int main(){
    int n,k;
    cin >> n >> k;
    for (int i = 1;i <= n;i++){
        cin >> a[i];
    }
    for (int i = 1;i <= n;i++){
        cin >> pr[0][i];
    }
    for (int j = 1;j < LOG;j++){
        for (int i = 1;i <= n;i++){
            pr[j][i] = pr[j-1][pr[j-1][i]];
        }
    }
    for (int i = 1;i <= n;i++){
        int j = i;
        for (int mask = 0;mask < LOG;mask++){
            if (k>>mask&1)
            j = pr[mask][i];
        }
        p[j]+=a[i];
    }
    int mx = 0,in = 0;
    for (int i = 1;i <= n;i++){
        if (p[i] > mx){
            mx = p[i],in = i;
        }
    }
    cout << mx << "\n" << in << "\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...