P9735题解
zhouweixi0 · · 题解
题意
题目传送门
这是一道模拟题。
会发生两种事件:
-
Patrik 事件 第
i 个车站花费的时间为t 。 -
Josip 事件 从第
y 个车站到这里花费的时间为t 。
我们定义一个数组
若发生 Patrik 事件,就将所花费的时间赋值给
若发生 Josip 事件,就将
最后,将数组中两个相邻车站之间距离最小的找出,记录下表,并输出即可。
代码
#include<bits/stdc++.h>
using namespace std;
int n,t,y,a[1010];
int minn=2147483647,ans;
string s;
int main(){
cin>>n;
for(int i=2;i<=n;i++){//记得从2开始
cin>>s;
if(s=="Patrik"){
cin>>t;
a[i]=t;
}
else{
cin>>y>>t;
a[i]=a[y]+t;
}
}
for(int i=2;i<=n;i++){//取最小值
if(a[i]-a[i-1]<minn){
minn=a[i]-a[i-1];
ans=i;
}
}
cout<<minn<<" "<<ans-1<<" "<<ans;//输出
return 0;
}