AcWing 4892. 训练计划
原题链接
简单
作者:
pqp
,
2025-03-26 16:22:13
·天津
,
所有人可见
,
阅读 1
import java.util.*;
public class Main
{
static final int M = 105;
static int[] constrains = new int[M];
static int[] temp1 = new int[M];
static int[] temp2 = new int[M];
static int[] days = new int[M];
static int n,m;
static boolean flag = true;
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
for(int i = 1; i <= m; i++) constrains[i] = sc.nextInt();
for(int i = 1; i <= m; i++) days[i] = sc.nextInt();
temp1[0] = 1;
for(int i = 1; i <= m; i++)
{
temp1[i] = temp1[constrains[i]] + days[i];
System.out.print(temp1[constrains[i]] + " ");
if (temp1[i] > n+1) flag = false;
}
System.out.println();
if(flag)
{
for(int i = m; i > 0; i--)
{
int minDay = n+1;
for(int j = i+1; j <= m; j++)
if(constrains[j] == i && temp2[j] < minDay) minDay = temp2[j];
temp2[i] = minDay - days[i];
}
for(int i = 1; i<= m; i++) System.out.print(temp2[i]+" ");
}
}
}