题目链接:https://codeforces.com/problemset/problem/1256/A

A. Payment Without Change
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

You have aa coins of value nn and bb coins of value 11. You always pay in exact change, so you want to know if there exist such xx and yy that if you take xx (0≤x≤a0≤x≤a) coins of value nn and yy (0≤y≤b0≤y≤b) coins of value 11, then the total value of taken coins will be SS.

You have to answer qq independent test cases.

Input

The first line of the input contains one integer qq (1≤q≤1041≤q≤104) — the number of test cases. Then qq test cases follow.

The only line of the test case contains four integers aa, bb, nn and SS (1≤a,b,n,S≤1091≤a,b,n,S≤109) — the number of coins of value nn, the number of coins of value 11, the value nn and the required total value.

Output

For the ii-th test case print the answer on it — YES (without quotes) if there exist such xx and yy that if you take xx coins of value nn and yy coins of value 11, then the total value of taken coins will be SS, and NO otherwise.

You may print every letter in any case you want (so, for example, the strings yEs, yes, Yes and YES will all be recognized as positive answer).

Example
input

Copy
4
1 2 3 4
1 2 3 6
5 2 6 27
3 3 5 18
output

Copy
YES
NO
NO
YES
思路:输入a,b,n,s,每个代表的意思为:a个含有价值n的硬币、b个含有价值1的硬币、价值为n的硬币、由这些硬币组成的目标数。先判断b个为1的硬币是否能直接达到s,能的话则直接输出,不能的话则进行下一步。
先判断价值为n的硬币最多能取多少个,即s对n取整,再将s减去s/n,再判断剩下的能不能由b个价值为1的硬币组成,能的话则满足,不能的话则不满足。
AC代码
#include<iostream>
#include<cmath>
using namespace std; int main()
{
int q;
cin >> q;
while(q--)
{
int a = ,b = ,sum = ,n = ,s = ,temp = ,min1 = ;
cin >> a >> b >> n >> s;
if(b >= s)
{
cout << "YES" << endl;
continue;
}
temp = s / n;
min1 = min(a,temp);
sum = s - min1 * n;
if(b >= sum)
{
cout << "YES" << endl;
continue;
}
else
{
cout << "NO" << endl;
continue;
}
}
return ;
}

题目链接:https://codeforces.com/contest/1257/problem/A

A. Two Rival Students
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

You are the gym teacher in the school.

There are nn students in the row. And there are two rivalling students among them. The first one is in position aa, the second in position bb. Positions are numbered from 11 to nn from left to right.

Since they are rivals, you want to maximize the distance between them. If students are in positions pp and ss respectively, then distance between them is |p−s||p−s|.

You can do the following operation at most xx times: choose two adjacent (neighbouring) students and swap them.

Calculate the maximum distance between two rivalling students after at most xx swaps.

Input

The first line contains one integer tt (1≤t≤1001≤t≤100) — the number of test cases.

The only line of each test case contains four integers nn, xx, aa and bb (2≤n≤1002≤n≤100, 0≤x≤1000≤x≤100, 1≤a,b≤n1≤a,b≤n, a≠ba≠b) — the number of students in the row, the number of swaps which you can do, and positions of first and second rivaling students respectively.

Output

For each test case print one integer — the maximum distance between two rivaling students which you can obtain.

Example
input

Copy
3
5 1 3 2
100 33 100 1
6 0 2 3
output

Copy
2
99
1
Note

In the first test case you can swap students in positions 33 and 44. And then the distance between the rivals is equal to |4−2|=2|4−2|=2.

In the second test case you don't have to swap students.

In the third test case you can't swap students.

思路:情况1:两个人的距离加上可移动的次数都小于等于最远距离的话,直接输出。

情况2:两个人的距离加上可移动距离大于最远距离,则说明可移动次数x足够用了。再来判断,要使两个人达到最远距离,与最远距离还差多少,如果可移动次数x大于差值,则两人的距离可达最大,否则两个人的最远距离为原先的距离加上可移动距离x,即为答案

AC代码

#include<iostream>
#include<cmath>
using namespace std; int main()
{
int t;
cin >> t;
while(t--)
{
int juli,n,x,a,b;
cin >> n >> x >> a >> b;
juli = abs(a - b);
if(juli + x <= n - )//移动后的距离 小于等于 最远距离
{
cout << x + juli << endl;//直接输出
continue;
}
if(n - juli <= x)//n-juli为 离最远距离差多少
{
cout << n - << endl;
continue;
}
else
{
cout << juli + x << endl;
continue;
}
}
return ;
}
//100 25 70 10

最新文章

  1. ng-strict-di
  2. [转载] SQL获取所有数据库名、表名、储存过程以及参数列表
  3. iar 问题
  4. Visual Studio2012打开时弹出“遇到异常:这可能是由某个扩展导致的”错误的解决办法
  5. [Spring Batch] 图解Spring Batch原理
  6. MySQL如何关联查询
  7. git相关
  8. JSTL(JSP Standard Tag Library)读书笔记
  9. C语言清除输入缓存方法记录[转]
  10. HMM模型详解
  11. 一个轻量级rest服务器
  12. Opencv 图像叠加 添加水印
  13. SG函数学(hua)习(shui)记录
  14. 从基于idea的第一个javaweb项目到shell脚本项目自动发布(jdk1.8,mysql5.7,maven3.5,tomcat9,subversion,centos7.3)之一
  15. 十分钟(小时)学习pandas
  16. 个人对JS原型链的一些理解(prototype、__proto__)
  17. idea 中解决maven 包冲突的问题(maven helper)
  18. dfs模版
  19. dd 命令 sd卡系统迁移
  20. nyoj----522 Interval (简单树状数组)

热门文章

  1. FCC---Change Animation Timing with Keywords--两个小球从A都B,相同循环时间 duration, 不同的速度 speed
  2. 利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API
  3. liteos C++支持(十七)
  4. cookiecutter
  5. day52_9_16Django中的静态文件和orm
  6. day6_logging模块
  7. SpringCloud琐碎内容
  8. Python中xlrd和xlwt模块使用方法----》》数据库数据导出(之一)
  9. OI回忆录——梦开始的地方
  10. awk、sed、grep更适合的方向