90分求助
  • 板块P1568 赛跑
  • 楼主Oaklong_12345
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/12/18 12:26
  • 上次更新2023/10/28 14:13:24
查看原帖
90分求助
533755
Oaklong_12345楼主2021/12/18 12:26

只有第四个点没过

#include <iostream>
using namespace std;
struct run
{
	long long s,t,m=0;
};
int main()
{
	bool pd1,pd2;
	long n,m,t1=0,t2=0,j1=0,j2=0,x1=0,x2=0,ans=0;
	cin>>n>>m;
	run sh[n],kc[m];
	for(long long i=0;i<n;i++) cin>>sh[i].s>>sh[i].t;
	for(long long i=0;i<m;i++) cin>>kc[i].s>>kc[i].t;
	while(n--) t1+=sh[n].t;
	while(m--) t2+=kc[m].t;
	for(long long i=1;i<=(t1<t2?t2:t1);i++)
	{
		if(sh[j1].m<sh[j1].t)
		{
			x1+=sh[j1].s;
			sh[j1].m++;
		}
		else
		{
			j1++;
			x1+=sh[j1].s;
			sh[j1].m++;
		}
		if(kc[j2].m<kc[j2].t)
		{
			x2+=kc[j2].s;
			kc[j2].m++;
		}
		else
		{
			j2++;
			x2+=kc[j2].s;
			kc[j1].m++;
		}
		if(i==1)
		{
			if(x1<=x2) pd1=false;
			else pd1=true;
		}
		else 
		{
			if(x1<=x2) pd2=false;
			else pd2=true;
			if(pd1!=pd2&&x1!=x2) ans++;
            else if (pd1!=pd2&&x1==x2)
            {
                pd2=pd1;
                continue;
            }
			pd1=pd2;
		}
	}
	cout<<ans;
	return 0;
}
2021/12/18 12:26
加载中...