結果
| 問題 | 
                            No.816 Beautiful tuples
                             | 
                    
| コンテスト | |
| ユーザー | 
                             Hyado
                         | 
                    
| 提出日時 | 2019-04-20 00:44:49 | 
| 言語 | C++14  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 2 ms / 1,500 ms | 
| コード長 | 861 bytes | 
| コンパイル時間 | 1,685 ms | 
| コンパイル使用メモリ | 174,060 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-09-24 09:17:11 | 
| 合計ジャッジ時間 | 2,320 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 15 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define fi first
#define se second
vector<ll> finddivisor(ll x){
    vector<ll> divisor;
    for(ll i=1; (i*i)<=x ;i++)
    {
        if(x%i==0){
            divisor.push_back(i);
            if(i*i!=x){
                divisor.push_back(x/i);
            }//約数はペアを持つことを利用
        }
    }
    sort(divisor.begin(),divisor.end());
    divisor.push_back(x);
    return divisor;
}//整数xの約数が入ったvectorを返すよ(xを含む)  
int main(){
    ll a,b;
    cin >> a >> b;
    vector<ll> v=finddivisor(a+b);
    
    for(ll i=0;i < v.size();i++)
    {
        if((b+v.at(i))%a == (v.at(i)+a)%b && (b+v.at(i))%a==0 && v.at(i)!=a && b!=v.at(i)){
            cout << v.at(i) << endl;
            return 0;
        }
    }
        
    cout << -1 << endl;
}
            
            
            
        
            
Hyado