Codefoces-811A Vladik and Courtesy [模拟]

题目描述
A. Vladik and Courtesy
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

At regular competition Vladik and Valera won a and b candies respectively. Vladik offered 1 his candy to Valera. After that Valera gave Vladik 2 his candies, so that no one thought that he was less generous. Vladik for same reason gave 3 candies to Valera in next turn.

More formally, the guys take turns giving each other one candy more than they received in the previous turn.

This continued until the moment when one of them couldn’t give the right amount of candy. Candies, which guys got from each other, they don’t consider as their own. You need to know, who is the first who can’t give the right amount of candy.

Input

Single line of input data contains two space-separated integers ab (1 ≤ a, b ≤ 109) — number of Vladik and Valera candies respectively.

Output

Pring a single line "Vladik’’ in case, if Vladik first who can’t give right amount of candy, or "Valera’’ otherwise.

Examples
input
1 1
output
Valera
input
7 6
output
Vladik
Note

Illustration for first test case:

Illustration for second test case:

题意

对A和B两个数轮流操作,第i轮对A删除2*i-1的值,对B删除2*i的值,问哪个谁先小于0? A先手。

只需要根据等差数列求和列出两个不等式即可:

对于A来说,直到第i轮消耗的数量为:i*i<=a

对于B来说,直到第i轮消耗的数量为:i*(i+1)<=b

因此,只要求最大的ia和ib即可,二者中小的先消耗光,而相等的时候答案就输出A,因为A先手。

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b,x,y;
int main() 
{
	cin>>a>>b;
	for(x=0;x*x<=a;x++);
	for(y=0;y*(y+1)<=b;y++);
	if(x<=y) cout<<"Vladik";
	else cout<<"Valera";
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值