結果
問題 | No.2244 Integer Complete |
ユーザー |
![]() |
提出日時 | 2023-03-11 21:33:57 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 126 ms / 2,000 ms |
コード長 | 1,012 bytes |
コンパイル時間 | 3,861 ms |
コンパイル使用メモリ | 251,564 KB |
最終ジャッジ日時 | 2025-02-11 10:30:31 |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 60 |
ソースコード
#include <stdio.h> #include <atcoder/all> #include <bits/stdc++.h> using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 int get(int n){ int r = sqrt(n); if(r*r <= n && n < (r+1)*(r+1))return r; if(r*r>n)r++; else r--; return r; } int main(){ int n,m; cin>>n>>m; vector<int> a(n),b(m); rep(i,n)cin>>a[i]; rep(i,m)cin>>b[i]; for(int i=1;true;i++){ if(a[0]==1&&binary_search(b.begin(),b.end(),i))continue; if(b[0]==1&&binary_search(a.begin(),a.end(),i))continue; for(int j=i*i;true;j++){ bool f = false; for(int k=1;k*k<=j;k++){ if(j%k==0){ int x = k; int y = j/k; rep(_,2){ if(binary_search(a.begin(),a.end(),get(x))&&binary_search(b.begin(),b.end(),get(y))){ f = true; goto L; } swap(x,y); } } } L:; if(!f){ cout<<j<<endl; return 0; } } } return 0; }