結果
| 問題 | No.3461 Min GCD |
| コンテスト | |
| ユーザー |
harurun
|
| 提出日時 | 2026-02-28 15:20:21 |
| 言語 | C++17 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,121 bytes |
| 記録 | |
| コンパイル時間 | 9,328 ms |
| コンパイル使用メモリ | 582,380 KB |
| 実行使用メモリ | 108,928 KB |
| 最終ジャッジ日時 | 2026-02-28 15:21:06 |
| 合計ジャッジ時間 | 17,894 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 8 WA * 13 |
ソースコード
#ifndef ONLINE_JUDGE
#include "header.hpp"
#else
#include <bits/stdc++.h>
#include <atcoder/all>
#include <boost/multiprecision/cpp_int.hpp>
using cpp_int=boost::multiprecision::cpp_int;
#include <boost/multiprecision/cpp_dec_float.hpp>
template<unsigned size>using cpp_float=boost::multiprecision::number<boost::multiprecision::cpp_dec_float<size>>;
template<unsigned size>using cpp_double=boost::multiprecision::number<boost::multiprecision::cpp_dec_float<size,long long>>;
#endif
using namespace std;
using ll=long long;
inline void yn(bool x){if(x){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}}
#define double_out(x) fixed << setprecision(x)
template<class T> inline void erase_duplicate(vector<T>& A){sort(A.begin(),A.end());A.erase(unique(A.begin(),A.end()),A.end());}
inline ll powll(ll x,ll n){ll r=1;while(n>0){if(n&1){r*=x;};x*=x;n>>=1;};return r;}
using namespace std;
using ll=long long;
int main(){
ll N,K;
cin>>N>>K;
vector<ll> A(N);
for(ll i=0;i<N;i++){
cin>>A[i];
}
vector<ll> B(N);
for(ll i=0;i<N;i++){
cin>>B[i];
}
vector<vector<ll>> div(N);
for(ll i=0;i<N;i++){
for(ll j=1;j*j<=A[i];j++){
if(A[i]%j==0){
div[i].push_back(j);
if(A[i]/j!=j){
div[i].push_back(A[i]/j);
}
}
}
sort(div[i].begin(),div[i].end());
}
ll ac=1;
ll wa=100001;
for(ll i=0;i<60;i++){
ll mid=(ac+wa)/2;
ll cnt=0;
for(ll j=0;j<N;j++){
ll idx=lower_bound(div[j].begin(),div[j].end(),mid)-div[j].begin();
ll tmp=1LL<<60;
for(ll k=idx;k<div[j].size();k++){
ll d=div[j][k];
if(B[j]%d==0){
tmp=0;
break;
}else{
tmp=min(tmp, d-(B[j]%d));
}
}
cnt+=tmp;
if(cnt==1LL<<60){
break;
}
}
if(cnt<=K){
ac=mid;
}else{
wa=mid;
}
}
cout<<ac<<endl;
}
harurun