Q-Tavas and Karafs
2017-05-09 21:22
369 查看
Description
Karafs is some kind of vegetable in shape of an 1 × h rectangle. Tavaspolis people love Karafs and they use Karafs in almost any kind of food. Tavas, himself, is crazy about Karafs.
Each Karafs has a positive integer height. Tavas has an infinite 1-based sequence of Karafses. The height of the i-th Karafs is si = A + (i - 1) × B.
For a given m, let’s define an m-bite operation as decreasing the height of at most m distinct not eaten Karafses by 1. Karafs is considered as eaten when its height becomes zero.
Now SaDDas asks you n queries. In each query he gives you numbers l, t and m and you should find the largest number r such that l ≤ r and sequence sl, sl + 1, …, sr can be eaten by performing m-bite no more than t times or print -1 if there is no such number r.
Input
4000
The first line of input contains three integers A, B and n (1 ≤ A, B ≤ 106, 1 ≤ n ≤ 105).
Next n lines contain information about queries. i-th line contains integers l, t, m (1 ≤ l, t, m ≤ 106) for i-th query.
Output
For each query, print its answer in a single line.
Sample Input
Input
2 1 4
1 5 3
3 3 10
7 10 2
6 4 8
Output
4
-1
8
-1
Input
1 5 2
1 5 10
2 7 4
Output
1
2
这个题一看就是codeforces的,巨难懂,看了n遍……
就是给你一个等差数列,后要求如果每次可以最多选择m个数
使这m个数-1 那么在t次操作中可以使l为左端点的最长序列中使所有数为0 输出这个最长序列的右端序号
Karafs is some kind of vegetable in shape of an 1 × h rectangle. Tavaspolis people love Karafs and they use Karafs in almost any kind of food. Tavas, himself, is crazy about Karafs.
Each Karafs has a positive integer height. Tavas has an infinite 1-based sequence of Karafses. The height of the i-th Karafs is si = A + (i - 1) × B.
For a given m, let’s define an m-bite operation as decreasing the height of at most m distinct not eaten Karafses by 1. Karafs is considered as eaten when its height becomes zero.
Now SaDDas asks you n queries. In each query he gives you numbers l, t and m and you should find the largest number r such that l ≤ r and sequence sl, sl + 1, …, sr can be eaten by performing m-bite no more than t times or print -1 if there is no such number r.
Input
4000
The first line of input contains three integers A, B and n (1 ≤ A, B ≤ 106, 1 ≤ n ≤ 105).
Next n lines contain information about queries. i-th line contains integers l, t, m (1 ≤ l, t, m ≤ 106) for i-th query.
Output
For each query, print its answer in a single line.
Sample Input
Input
2 1 4
1 5 3
3 3 10
7 10 2
6 4 8
Output
4
-1
8
-1
Input
1 5 2
1 5 10
2 7 4
Output
1
2
这个题一看就是codeforces的,巨难懂,看了n遍……
就是给你一个等差数列,后要求如果每次可以最多选择m个数
使这m个数-1 那么在t次操作中可以使l为左端点的最长序列中使所有数为0 输出这个最长序列的右端序号
#include<stdio.h> long long a,b,n;//给的空间大应该要用long long long l,t,m; long long an(long long x) { return a+(x-1)*b; } long long get_sum(long long r) { return (an(r)+an(l))*(r-l+1)/2; } int main() { long long i,j,k; while(~scanf("%I64d%I64d%I64d",&a,&b,&n)) { while(n--) { scanf("%I64d%I64d%I64d",&l,&t,&m); if(an(l)>t) { printf("-1\n"); continue; } long long lle= l; long long lri=(t-a)/b+1; long long mid; while(lle<=lri) { long long mid = (lle+lri)/2; if(get_sum(mid)<=t*m) lle = mid+1; else lri = mid-1; } printf("%d\n",lle-1); } } return 0; }
相关文章推荐
- Tavas and Karafs 二分+结论
- 535 C.Tavas and karafs
- Codeforces Round #299 (Div. 1) A. Tavas and Karafs 水题
- Codeforces Round #299 (Div. 2)——C. Tavas and Karafs
- CF Tavas and Karafs (二分)
- Tavas and Karafs CodeForces - 536A
- 【Codeforces Round #299 (Div. 2) C】 Tavas and Karafs
- Codeforces Round #299 (Div. 2) C. Tavas and Karafs
- [Codeforces 535B]Tavas and Karafs
- 二分搜索 Codeforces Round #299 (Div. 2) C. Tavas and Karafs
- CodeForces 536A---Tavas and Karafs
- #299 (div.2) B. Tavas and SaDDas
- codeForces 535C.Tavas and Karafs(二分+思维)
- about macros fs_initcall and module_init
- codeforces 299 div 2 (C Tavas and Karafs)
- 535A: Tavas and Nafas
- cf#299 Tavas and Malekas
- A. Tavas and Nafas
- ocfs2 and configfs.ko
- CodeForces 535B — Tavas and SaDDas