C. The Legend of Freya the Frog

time limit per test

2 seconds

memory limit per test

256 megabytes

Freya the Frog is traveling on the 2D coordinate plane. She is currently at point (0,0)(0,0) and wants to go to point (x,y)(x,y). In one move, she chooses an integer dd such that 0≤d≤k0≤d≤k and jumps dd spots forward in the direction she is facing.

Initially, she is facing the positive xx direction. After every move, she will alternate between facing the positive xx direction and the positive yy direction (i.e., she will face the positive yy direction on her second move, the positive xx direction on her third move, and so on).

What is the minimum amount of moves she must perform to land on point (x,y)(x,y)?

Input

The first line contains an integer tt (1≤t≤1041≤t≤104) --- the number of test cases.

Each test case contains three integers xx, yy, and kk (0≤x,y≤109,1≤k≤1090≤x,y≤109,1≤k≤109).

Output

For each test case, output the number of jumps Freya needs to make on a new line.

Example

Input

Copy

复制代码

3

9 11 3

0 10 8

1000000 100000 10

Output

Copy

复制代码
8
4
199999

Note

In the first sample, one optimal set of moves is if Freya jumps in the following way: (0,00,0) →→ (2,02,0) →→ (2,22,2) →→ (3,23,2) →→ (3,53,5) →→ (6,56,5) →→ (6,86,8) →→ (9,89,8) →→ (9,119,11). This takes 8 jumps.

解题说明:此题是一道数学题,交替向上向右走,可以不走,请问到给定点需要走几次。由于可以走0步,所以向上走和向右走是相互独立的,只需要求出他们的最大值即可。注意走0步的移动也要统计在内。

cpp 复制代码
#include <iostream>
#include<algorithm>
using namespace std;

void solve()
{
	long long x, y, k;
	cin >> x >> y >> k;
	long long ansx = x / k + (x % k != 0), ansy = y / k + (y % k != 0);
	if (ansx > ansy)
	{
		cout << 2ll * ansx - 1 << endl;
	}
	else
	{
		cout << 2ll * ansy << endl;
	}
}
int main()
{
	int TT = 1;
	cin >> TT;
	while (TT--)
	{
		solve();
	}
	return 0;
}
相关推荐
Yupureki1 小时前
从零开始的C++学习生活 16:C++11新特性全解析
c语言·数据结构·c++·学习·visual studio
汤姆yu2 小时前
基于python的化妆品销售分析系统
开发语言·python·化妆品销售分析
ScilogyHunter2 小时前
C语言标准库完全指南
c语言·开发语言
sali-tec2 小时前
C# 基于halcon的视觉工作流-章52-生成标定板
开发语言·图像处理·人工智能·算法·计算机视觉
应茶茶2 小时前
C++11 核心新特性:从语法重构到工程化实践
java·开发语言·c++
程子的小段2 小时前
C 语言实例 - 字符串复制
c语言·开发语言
-森屿安年-3 小时前
STL 容器:stack
开发语言·c++
歪歪1003 小时前
C#如何在数据可视化工具中进行数据筛选?
开发语言·前端·信息可视化·前端框架·c#·visual studio
Jyywww1214 小时前
Python基于实战练习的知识点回顾
开发语言·python
Tony Bai4 小时前
【Go 网络编程全解】14 QUIC 与 HTTP/3:探索下一代互联网协议
开发语言·网络·后端·http·golang