結果
問題 |
No.1884 Sequence
|
ユーザー |
|
提出日時 | 2022-03-25 21:51:40 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 169 ms / 2,000 ms |
コード長 | 771 bytes |
コンパイル時間 | 2,466 ms |
コンパイル使用メモリ | 198,824 KB |
最終ジャッジ日時 | 2025-01-28 11:59:49 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll=long long; int main(){ ll n; cin>>n; vector<ll> a(n); ll cnt=0; for(int i=0;i<n;i++){ cin>>a[i]; if(a[i]==0)cnt++; } sort(a.begin(),a.end()); ll k=0; for(int i=0;i<n-1;i++){ if(a[i]!=0) k=max(k,a[i+1]-a[i]); } for(int i=0;i<n-1;i++){ if(a[i]==0||a[i+1]==0) continue; if(a[i+1]==a[i]){k=0;break;} k=gcd(k,a[i+1]-a[i]); } ll z=0; if(k==0){ for(int i=0;i<n-1;i++){ if(a[i]==a[i+1]||(a[i]==0)) continue; cout<<"No"<<endl; return 0; } cout<<"Yes"<<endl; return 0; } for(int i=0;i<n-1;i++){ if(a[i]==0||a[i+1]==0) continue; z+=(a[i+1]-a[i])/k-1; } //cout<<k<<" "<<z<<endl; if(cnt>=z) cout<<"Yes"<<endl; else cout<<"No"<<endl; }