202212-2-训练计划
#include<stdio.h>
#include<iostream>
using namespace std;
int compute_time(int arr[],int i,int time[]) {
if (arr[i] == 0) return 1;
else return time[arr[i]] + compute_time(arr, arr[i], time);
}
int main() {
int n, m;
int pre_subject[105];
int time[105];
int flag = 0;
cin >> n >> m;
for (int i = 1; i <= m; i++) cin >> pre_subject[i];
for (int i = 1; i <= m; i++) cin >> time[i];
for (int i = 1; i <= m; i++) {
int day = compute_time(pre_subject, i, time);
cout << day << " ";
if (day + time[i]-1 > n) flag = 1;
}
cout << endl;
if (!flag) {
for (int i = 1; i <= m; i++) {
cout << n - time[i] + 1<<" ";
}
}
return 0;
}
只有70分 不太清楚为什么没有通过 可能是时间复杂度?