結果
| 問題 | No.2074 Product is Square ? |
| コンテスト | |
| ユーザー |
hiro71687k
|
| 提出日時 | 2023-03-03 21:30:05 |
| 言語 | C++17 (gcc 15.2.0 + boost 1.90.0) |
| 結果 |
AC
|
| 実行時間 | 174 ms / 2,000 ms |
| コード長 | 1,476 bytes |
| 記録 | |
| コンパイル時間 | 2,947 ms |
| コンパイル使用メモリ | 273,864 KB |
| 実行使用メモリ | 6,400 KB |
| 最終ジャッジ日時 | 2026-06-29 18:59:12 |
| 合計ジャッジ時間 | 6,069 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 33 |
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
using namespace std;
using ll=long long;
using ld=double;
ld pie=3.14159265359;
ll mod=998244353;
long long inf=100000000000000001;
ll gcd(ll a, ll b) {
a = abs(a); b = abs(b);
if (a < b)swap(a, b);
while (b) {
ll r=a%b;
a=b;
b=r;
}
return a;
}
int main(){
ll t;
cin >> t;
for (ll o = 0; o < t; o++)
{
ll n;
cin >> n;
vector<ll>a(n);
for (ll i = 0; i < n; i++)
{
cin >> a[i];
}
for (ll i = 0; i < n; i++)
{
for (ll j = i+1; j < n; j++)
{
ll x=gcd(a[i],a[j]);
a[i]/=x;
a[j]/=x;
}
}
bool ok=true;
for (ll i = 0; i < n; i++)
{
ll left=0,right=a[i]+1;
while (right-left>1)
{
ll mid=(right+left)/2;
ll y=0;
if (a[i]%mid>=1)
{
y=1;
}
if (mid>a[i]/mid+y)
{
right=mid;
}else{
left=mid;
}
}
if (left*left!=a[i])
{
ok=false;
}
}
if (ok)
{
cout << "Yes" << endl;
}else{
cout << "No" << endl;
}
}
}
hiro71687k