Codeforces 492D Vanya and Computer Game

来源:互联网 发布:企业文档数据加密 编辑:程序博客网 时间:2024/05/19 18:45

题目链接:http://codeforces.com/problemset/problem/492/D


题意:游戏里,有2个玩家,a玩家1s内攻击x次,b玩家1s内攻击y次,给出若干个怪物的血量,问谁补得刀


思路:a玩家第i次攻击,b玩家第j次攻击,i/x > j/y(化简为i*y >j*x),i+j次是b的,若相等则i+j次攻击和i+j+1次攻击都视为同时攻击


#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define maxn 2000300#define LL long longusing namespace std;int at[maxn];int main(){    int n,x,y;    while (scanf("%d%d%d",&n,&x,&y)!=EOF)    {        LL cnt=1,xx=1,yy=1;        memset(at,0,sizeof(at));        while (cnt<=x+y)        {            if (xx*y>yy*x)            {                at[cnt++]=2;                yy++;            }            else if (xx*y<yy*x)            {                at[cnt++]=1;                xx++;            }            else            {                at[cnt++]=3;                at[cnt++]=3;                xx++;                yy++;            }        }        at[0]=at[cnt-1];        LL hp;        for (int i=0;i<n;i++)        {            scanf("%I64d",&hp);            hp=hp%(x+y);            if (at[hp]==3) printf("Both\n");            else if (at[hp]==1) printf("Vanya\n");            else printf("Vova\n");        }    }}


0 0
原创粉丝点击