codeforces A. Sum of Odd Integers
程序员文章站
2022-07-15 16:17:25
...
题目
题意:
有个奇数,问最后是否有可能和为。
思路:
其实这道题只有两种是不可能,第一种是一个偶数一个奇数,因为两个奇数相加为偶数,那么在个奇数下怎么能得出偶数,个奇数也得不出奇数,第二种就是个奇数相加最小值大于。如果不属于这两种情况,那么肯定是可以的,因为这些奇数可以合成任一的数字,比如,我们可以分成,在18一下,我们可以得到~的任何数字,那么最后肯定可以得到的。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <string>
#include <cmath>
#include <set>
#include <map>
#include <deque>
using namespace std;
typedef long long ll;
typedef vector<int> vec;
typedef pair<int, int> pii;
template <class T>
inline void read(T &ret) {
char c;
int sgn;
if (c = getchar(), c == EOF) return ;
while (c != '-' && (c < '0' || c > '9')) c = getchar();
sgn = (c == '-') ? -1:1;
ret = (c == '-') ? 0:(c - '0');
while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
ret *= sgn;
return ;
}
inline void out(int x) {
if (x > 9) out(x / 10);
putchar(x % 10 + '0');
}
int main() {
int n, k, t;
read(t);
while (t--) {
read(n), read(k);
if (n % 2 != k % 2) printf("NO\n");
else if (1ll * k * k > n) printf("NO\n");
else printf("YES\n");
}
}