显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int n,m,s,tot,ver[N],head[N],Next[N],edge[N];
int a[N],b[N];
void add(int x,int y,int z){
ver[++tot]=y;
edge[tot]=z;
Next[tot]=head[x];
head[x]=tot;
}
int main(){
freopen("pathsjump.in","r",stdin);
freopen("pathsjump.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
for(int i=1;i<=n;i++){
int k=m;
int sum=0;
int mins=0x3f3f3f3f;
for(int j=i;k>0;k--,j=a[j]){
sum+=b[j];
mins=min(mins,b[j]);
}
cout<<sum<<' '<<mins<<endl;
}
return 0;
}