sdut 1446 超级玛丽

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1446

题意:你妹的,我妹的,他妹的,中文题啊,坑妹啊,中文题读错了。。。。。漏掉了条件了,返回的是如果浪子最终跳跃次数多于男爵的最终跳跃次数,只想骂自己,漏掉了个条件搞的自己无可奈何,一直比较的是距离,题目要求比较的是跳跃次数

刚开始循环是n循环+跳出的区间循环,造成超时,又来看了别人代码,醒悟过来,区间没必要循环,只要比大小就可以了。。。。。。

View Code
 1 #include<stdio.h>

 2 

 3 long long f(long long n,long long d,long long m,long long l)

 4 {

 5     long long left=0;

 6     long long right=0;

 7     long long dis,step;

 8     for(long long i=0; i<n; i++)

 9     {

10         left=(i+1)*m;

11         right=i*m+l;

12         step=(right+d)/d;

13         if(step*d<left) break;

14     }

15     return step;

16 }

17 

18 int main()

19 {

20     int T;

21     long long n1,n2,m1,m2,l1,l2;

22     long long ans1,ans2,d1,d2;

23     scanf("%d",&T);

24     while(T--)

25     {

26         scanf("%lld%lld%lld%lld",&n1,&d1,&m1,&l1);

27         scanf("%lld%lld%lld%lld",&n2,&d2,&m2,&l2);

28         ans1=f(n1,d1,m1,l1);

29         ans2=f(n2,d2,m2,l2);

30         //printf("%lld %lld\n",ans1,ans2);

31         if(ans1==ans2) printf("Az is Winner at %lld\n",d2*ans2);

32         else

33         {

34             if(ans1>ans2) printf("Lz is Winner at %lld\n",d1*ans1);

35             else printf("Lz is Winner at %lld\n",d2*ans2);

36         }

37     }

38     return 0;

39 }

 

 

你可能感兴趣的:(du)