Codeforces Round #280 (Div. 2) D

来源:互联网 发布:linux系统dd命令 编辑:程序博客网 时间:2024/04/30 18:20

2014/12/2


二分,

一开始去打表,因为精度问题跪了。

后来写二分的时候, mid/ x + mid / y  < a,第一眼以为,如果两个人同时攻击的时候攻击次数只记一次(= = )就写成了 mid/x + mid./y - mid/(x*y) <a。

比赛后想通了, 比如 

2 2 3

5 


输出:

both

both

。。。心好痛。。就不说了。。

#include<stdio.h>#include<string.h>int main(){int n, x,  y;int a;while(~scanf("%d%d%d",&n,&x,&y)){while(n--){ __int64 minn = 0;     __int64 maxn = 1e15;     __int64 mid ;     scanf("%d",&a);     while(minn < maxn)     {     mid = (minn + maxn)>>1;     if(mid/x + mid/y < a)     {     minn = mid+1;     }     else maxn = mid;     }     if(minn%x==0&&minn%y==0)     {     printf("Both\n");     }     else if(minn % x==0)     {     printf("Vova\n");     }     else printf("Vanya\n");     }   }return 0;}


0 0
原创粉丝点击