北大ACM1061题,题目在这http://poj.org/problem?id=1061,为什么下面的代码提示说wrong answer。
//算法:主要是先固定一个走的慢的青蛙,//让其不动,另一个青蛙移动他们之间的相对位移#include<stdio.h>intmain(){inti;intdif;int...
//算法:主要是先固定一个走的慢的青蛙,
//让其不动,另一个 青蛙移动他们之间的相对位移
#include<stdio.h>
int main()
{
int i;
int dif;
int d;
int x,y,m,n,l;
scanf("%d%d%d%d%d",&x,&y,&m,&n,&l);
//dif = m>n ? (m-n):(n-m);
if(m>n) //因为是固定x不动,而y向前移动的,所以如果x移动 速度比y快的话将两个相换
{
dif = m-n;
i=x;
x=y;
y=i;
}
else
{
dif = n -m;
}
i=1;
d = x-y ; //开始 时相差步数
do
{
if((y=y+dif)>l)
{
y = y-l;
}
if(x == y)
{
printf("%d",i);
return 0;
}
i=i+1;
}while(d!=x-y);
printf("Impossible");
}
请告诉我怎么改,只要能AC就给分。(不需要在其它地方复制一个过来) 展开
//让其不动,另一个 青蛙移动他们之间的相对位移
#include<stdio.h>
int main()
{
int i;
int dif;
int d;
int x,y,m,n,l;
scanf("%d%d%d%d%d",&x,&y,&m,&n,&l);
//dif = m>n ? (m-n):(n-m);
if(m>n) //因为是固定x不动,而y向前移动的,所以如果x移动 速度比y快的话将两个相换
{
dif = m-n;
i=x;
x=y;
y=i;
}
else
{
dif = n -m;
}
i=1;
d = x-y ; //开始 时相差步数
do
{
if((y=y+dif)>l)
{
y = y-l;
}
if(x == y)
{
printf("%d",i);
return 0;
}
i=i+1;
}while(d!=x-y);
printf("Impossible");
}
请告诉我怎么改,只要能AC就给分。(不需要在其它地方复制一个过来) 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询