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 }