点7怎么也过不了,数据也下载不了,求大佬相助!

P1568 赛跑

```c #include <stdio.h> int main() { int a,b,i,j,k=0,sa=0,sb=0,m=0,n=0; scanf("%d%d",&a,&b); int c[1000][2],d[1000][2]; for(i=0;i<a;i++) scanf("%d%d",&c[i][0],&c[i][1]); for(i=0;i<b;i++) scanf("%d%d",&d[i][0],&d[i][1]); for(i=j=0;i<a;) { sa+=c[i][0]; c[i][1]--; sb+=d[j][0]; d[j][1]--; //按每秒分别计算两人位置 n=sa-sb; //计算位置差,这里以SH领先为正 if(n!=0) //如果有差距再进一步判断 { long h=n*m; if(m==0) //消除从起点领先的变化次数 { m=n; } else { if(h<0) //只有位置差为异号时对顺序变化次数加一 { k++; m=n; //储存最新一次位置情况 } } } if(c[i][1]==0) //判断某时间段是否用尽,因总时间相同,只判断一人即可 i++; if(d[j][1]==0) j++; } printf("%d",k); return 0; } ```
by Jianxin7180 @ 2022-01-21 23:30:51


原来是数据类型转换出了问题,没能在储存之前转换为long,所以就丢失精度了
by Jianxin7180 @ 2022-01-26 12:14:35


|