跳转至

[[分类讨论]] [[数学]]

B. Tab Closing

时间限制:每测试点 1.5 秒
内存限制:256 MB

问题描述

你盯着电脑屏幕太久了,是时候休息一下去活动活动了。

你的屏幕是一条长度为 a 的线段,上面显示着 n 个标签页。你希望通过点击每个标签页右端点的 "x" 来关闭所有标签页。

每个标签页的长度为 len = \min(b, \frac{a}{m}),其中 m 是当前剩余的标签页数量。这些标签页总是从屏幕左端点开始紧密排列,也就是说,"x" 的位置分别在距离左端点 len, 2 \cdot len, 3 \cdot len, \dots, m \cdot len 单位处。请注意,当你关闭标签页时,每个标签页的长度会发生变化。

你的光标初始位于屏幕的左端点。你想知道关闭所有标签页所需的最少鼠标移动次数是多少。

输入格式

每个测试包含多个测试用例。第一行包含测试用例数量 t1 \leq t \leq 10^4)。接下来是每个测试用例的描述。

每个测试用例包含一行三个整数 a, b, n1 \leq b \leq a \leq 10^9, 1 \leq n \leq 10^9)。

输出格式

对于每个测试用例,输出一个整数 —— 关闭所有标签页所需的最少鼠标移动次数。

样例输入

12
8 1 6
9 6 2
10 3 1
10 1 10
9 2 1
5 5 6
6 2 7
9 1 9
3 2 6
8 1 7
8 1 9
8 2 4

样例输出

1
2
1
1
1
1
2
1
2
1
2
1

样例说明

  • 第一个测试用例中,可能的操作是将光标移动到位置 1 并点击 6 次。
  • 第二个测试用例中,可能的操作是先将光标移动到位置 4.5 点击一次,然后将光标移动到位置 6 再点击一次。可以证明无法用少于 2 次移动完成。

赛时AC代码

// Problem: CF 2166 B
// Contest: Codeforces - Codeforces Round 1064 (Div. 2)
// URL: https://codeforces.com/contest/2166/problem/B
// Memory Limit: 256 MB
// Time Limit: 1500 ms
// 
// Powered by CP Editor (https://cpeditor.org)


#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;

void solve(){
    double a,b,n;
    cin>>a>>b>>n;
    if(b*n<=a||b>=a) printf("1\n");
    else printf("2\n");

    return ;
}



int main(){
    int t;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}