結果

問題 No.1884 Sequence
ユーザー erbowlerbowl
提出日時 2022-08-10 14:39:29
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
RE  
実行時間 -
コード長 1,043 bytes
コンパイル時間 2,289 ms
コンパイル使用メモリ 200,780 KB
最終ジャッジ日時 2025-01-30 20:01:32
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 38 RE * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

typedef long long ll;
typedef long double ld;
#include <bits/stdc++.h>
using namespace std;
#define int long long

signed main(){
    ll n;
    std::cin >> n;
    vector<ll> a;
    ll zc=0;
    for (int i = 0; i < n; i++) {
        ll tmp;
        std::cin >> tmp;
        if(tmp==0){
            zc++;
        }else{
            a.push_back(tmp);
        }
    }
    bool same=false;
    sort(a.begin(),a.end());
    vector<ll> dif;
    ll gcdv = 0;
    for (int i = 0; i < a.size()-1; i++) {
        if(a[i+1]-a[i]!=0){
            gcdv = gcd(gcdv,a[i+1]-a[i]);
            dif.push_back(a[i+1]-a[i]);
        }else{
            same=true;
        }
    }
    ll req = 0;
    for (auto e : dif) {
        req += e/gcdv-1;
    }
    if(same){
        if(a.front()!=a.back()){
            std::cout << "No" << std::endl;
        }else{
            std::cout << "Yes" << std::endl;
        }
    }else{
        if(req>zc){
            std::cout << "No" << std::endl;
        }else{
            std::cout << "Yes" << std::endl;
        }
    }
}
0