http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1446
题意:你妹的,我妹的,他妹的,中文题啊,坑妹啊,中文题读错了。。。。。漏掉了条件了,返回的是如果浪子最终跳跃次数多于男爵的最终跳跃次数,只想骂自己,漏掉了个条件搞的自己无可奈何,一直比较的是距离,题目要求比较的是跳跃次数
刚开始循环是n循环+跳出的区间循环,造成超时,又来看了别人代码,醒悟过来,区间没必要循环,只要比大小就可以了。。。。。。
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 }