给定四个整数 x1,y1,x2,y2,请你计算 max(|x1−x2|,|y1−y2|)。
输入格式
第一行包含两个整数 x1,y1。
第二行包含两个整数 x2,y2。
输出格式
一个整数,表示 max(|x1−x2|,|y1−y2|)的值。
数据范围
前 4 个测试点满足 −10≤x1,y1,x2,y2≤10
所有测试点满足 −109≤x1,y1,x2,y2≤109。
输入样例1:
0 0
4 5
输出样例1:
5
输入样例2:
3 4
6 1
输出样例2:
3
#include
using namespace std;
int main(){
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
cout<
如果一个正整数的约数个数恰好为 33,则称该数为美丽数。
给定 n 个正整数 a1,a2,…,an,请你依次判断每个数是否是美丽数。
输入格式
第一行包含整数 n。
第二行包含 n 个整数 a1,a2,…,an。
输出格式
共 n 行,其中第 i 行输出对 ai 的判断,如果 ai 是美丽数,则输出 YES
,否则输出 NO
。
数据范围
前 66 个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤105,1≤ai≤1012。
输入样例:
3
4 5 6
输出样例:
YES
NO
NO
#include
#include
#include
#include
using namespace std;
const int N = 1e6 + 10;
typedef long long ll;
int primes[N], cnt;
bool st[N];
void get_primes(int n)
{ st[1] = true;
for (int i = 2; i <= n; i ++ )
{
if (!st[i]) primes[cnt ++ ] = i;
for (int j = 0; primes[j] <= n / i; j ++ )
{
st[primes[j] * i] = true;
if (i % primes[j] == 0) break;
}
}
}
int main() {
int n; cin >> n;
get_primes(N);
while (n -- ) {
ll x; cin >> x;
int t = sqrt(x);
if ((ll)t * t == x && st[t] == false) puts("YES");
else puts("NO");
}
return 0;
}
Alice 和 Bob 在玩一个游戏。
首先,给定一个长度为 n� 的正整数数列 a1,a2,…,an�1,�2,…,��。
随后,两人轮流展开行动,由 Alice 先手行动。
当轮到一人采取行动时,如果 a1=0�1=0,则该玩家输掉游戏,否则该玩家需要:
假设双方都采取最优策略,请你判断谁将获胜。
输入格式
第一行包含整数 T�,表示共有 T� 组测试数据。
每组数据第一行包含整数 n�。
第二行包含 n� 个整数 a1,a2,…,an�1,�2,…,��。
输出格式
每组数据输出一行结果,如果 Alice 获胜,则输出 Alice
,如果 Bob 获胜,则输出 Bob
。
数据范围
前 33 个测试点满足 1≤T≤101≤�≤10,2≤n≤32≤�≤3。
所有测试点满足 1≤T≤2×1041≤�≤2×104,2≤n≤1052≤�≤105,1≤ai≤1091≤��≤109,一个测试点的所有的 n� 相加之和不超过 2×1052×105。
输入样例:
3
2
1 1
2
2 1
3
5 4 4
输出样例:
Bob
Alice
Alice
#include
#include
using namespace std;
const int N = 1e5 + 10;
int n;
int a[N];
void solve() {
scanf("%d", &n);
int minv = 2e9;
for (int i = 1; i <= n; i ++ ) {
scanf("%d", &a[i]);
if (a[i] < minv) minv = a[i];
}
puts(a[1] == minv ? "Bob" : "Alice");
}
int main() {
int _; scanf("%d", &_);
while (_ -- ) solve();
return 0;
}