結果
| 問題 |
No.2244 Integer Complete
|
| コンテスト | |
| ユーザー |
shobonvip
|
| 提出日時 | 2023-03-08 05:39:02 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,399 bytes |
| コンパイル時間 | 4,048 ms |
| コンパイル使用メモリ | 254,944 KB |
| 最終ジャッジ日時 | 2025-02-11 06:43:39 |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 51 WA * 9 |
ソースコード
#include<bits/stdc++.h>
#include<atcoder/all>
using namespace std;
using namespace atcoder;
typedef modint998244353 mint;
typedef long long ll;
// makediv
vector<ll> makediv(ll n){
vector<ll> ld, ud;
for (ll i=1; i*i<=n; i++){
if (n%i == 0){
ld.push_back(i);
if (i != n/i){
ud.push_back(n/i);
}
}
}
reverse(ud.begin(), ud.end());
ld.insert(ld.end(), ud.begin(), ud.end());
return ld;
}
// -----
int main(){
int n,m; cin >> n >> m;
vector<ll> a(n);
vector<ll> a2(n);
vector<ll> b(m);
vector<ll> b2(m);
for (int i=0; i<n; i++){
cin >> a[i];
a2[i] = a[i] * a[i];
}
for (int i=0; i<m; i++){
cin >> b[i];
b2[i] = b[i] * b[i];
}
if (a[0] != 1 || b[0] != 1){
cout << 1 << endl;
return 0;
}
vector<bool> c(40000);
for (int i=0; i<n; i++){
c[a[i]] = true;
}
for (int i=0; i<m; i++){
c[b[i]] = true;
}
ll v = 0;
for (int i=1; i<40000; i++){
if (!c[i]){
v = i * i;
break;
}
}
ll k = v;
while (true){
bool mode = false;
for (ll i: makediv(k)){
ll j = k / i;
bool ar = false;
for (int y=0; y<m; y++){
if (b[y]*b[y] <= j && j < (b[y]+1)*(b[y]+1)){
ar = true;
}
}
if (!ar) continue;
ar = false;
for (int x=0; x<n; x++){
if (a[x]*a[x] <= i && i <= (a[x]+1)*(a[x]+1)){
ar = true;
}
}
if (ar){
mode = true;
break;
}
}
if (!mode) break;
k++;
}
cout << k << endl;
}
shobonvip