TA
题意:给你一个火车的时间表(包括预计到达时间,预计出发时间),再给你一个组数,表示每站到达的延迟时间。火车出发需要满足两个条件。
1.最少等待(预计出发时间-预计到达时间)/2的时间(向上取整)。
2.出发时间>=预计出发时间
idea:模拟即可
ACcode:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct node
{
int a,b;
}q[1010];
int t,n,tm[1010],in,out;
int main()
{
// freopen("in.txt","r",stdin);
cin>>t;
while(t--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d %d",&q[i].a,&q[i].b);
}
for(int i=1;i<=n;i++) scanf("%d",&tm[i]);
in = 0;
out = 0;
q[0].b = 0;
for(int i=1;i<=n;i++)
{
in = q[i].a - q[i-1].b + out + tm[i];
out = in + ceil( (q[i].b-q[i].a)/2.0 );
if( out<q[i].b ) out = q[i].b;
}
cout<<in<<endl;
}
return 0;
}