Codeforces Global Round 14, B. Phoenix and Puzzle
Posted 小哈里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Global Round 14, B. Phoenix and Puzzle相关的知识,希望对你有一定的参考价值。
problem
B. Phoenix and Puzzle
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
Phoenix is playing with a new puzzle, which consists of n identical puzzle pieces. Each puzzle piece is a right isosceles triangle as shown below.
A puzzle piece
The goal of the puzzle is to create a square using the n pieces. He is allowed to rotate and move the pieces around, but none of them can overlap and all n pieces must be used (of course, the square shouldn’t contain any holes as well). Can he do it?
Input
The input consists of multiple test cases. The first line contains an integer t (1≤t≤104) — the number of test cases.
The first line of each test case contains an integer n (1≤n≤109) — the number of puzzle pieces.
Output
For each test case, if Phoenix can create a square with the n puzzle pieces, print YES. Otherwise, print NO.
Example
inputCopy
3
2
4
6
outputCopy
YES
YES
NO
Note
For n=2, Phoenix can create a square like this:
For n=4, Phoenix can create a square like this:
For n=6, it is impossible for Phoenix to create a square.
solution
#include<bits/stdc++.h>
using namespace std;
int a[110];
int main(){
int T; cin>>T;
while(T--){
int n; cin>>n;
int ok = 0;
if(n%4==0){
int x = n/4;
int xx = sqrt(x);
if(xx*xx==x){
ok = 1;
}
}
if(n%2==0){
int x = n/2;
int xx = sqrt(x);
if(xx*xx==x){
ok = 1;
}
}
if(ok==1)cout<<"YES\\n";
else cout<<"NO\\n";
}
return 0;
}
以上是关于Codeforces Global Round 14, B. Phoenix and Puzzle的主要内容,如果未能解决你的问题,请参考以下文章