作为一名刚学c++没多久的萌新,实在是不知道错哪了QAQ,P1568赛跑,本机上测试没出问题,不知道为什么会有三个RE,下面是我提交的代码
#include<bits/stdc++.h>
using namespace std;
int a1[10000],b1[10000],a2[10000],b2[10000],c[10000];
//分别是存第一个的速度时间,第二个速度时间和领先情况
int main()
{
int n,m,l1=0,l2=0,sum=0,ans=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a1[i]>>b1[i];
}
for(int i=1;i<=m;i++)
{
cin>>a2[i]>>b2[i];
}
//输入
for(int i=1;i<=m;i++)
{
sum+=b2[i];
}
//计算总时间
for(int i=0;i<=sum;i++)
{
c[i]=0;
}
//不用管这个
for(int i=1;i<=sum;i++)
{
int k1=0,k2=0,sum1=0,sum2=0;
for(int j=1;j<=n;j++)
{
sum1+=b1[j];
if(sum1>=i)
{
k1=j;
sum1=0;
break;
}
}
for(int j=1;j<=m;j++)
{
sum2+=b2[j];
if(sum2>=i)
{
k2=j;
sum2=0;
break;
}
}
//分别确定时间点对应的时间段
l1+=a1[k1];
l2+=a2[k2];
//赋上对应的速度并计算路程
if(l1>l2)
{
c[i]=1;
}
else if(l1<l2)
{
c[i]=0;
}
else
{
c[i]=c[i-1];
}
//确定领先位次
}
for(int i=2;i<=sum;i++)
{
if(c[i]!=c[i-1])
{
ans++;
}
}
//计算改变次数
cout<<ans;
//输出
return 0;
}
希望有大佬过来指点一下,我只想知道我错哪了,谢谢QAQ