結果
問題 |
No.2860 Heal Slimes
|
ユーザー |
![]() |
提出日時 | 2024-08-25 15:02:45 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,150 bytes |
コンパイル時間 | 4,423 ms |
コンパイル使用メモリ | 256,352 KB |
最終ジャッジ日時 | 2025-02-24 01:20:39 |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 WA * 10 |
ソースコード
#include <stdio.h> #include <bits/stdc++.h> #include <atcoder/all> using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 1000000000000000001 int main(){ int _t; cin>>_t; rep(_,_t){ long long N,K,X; cin>>N>>K>>X; vector<long long> h(N); rep(i,N)cin>>h[i]; vector<long long> d(1,h[0]); rep(i,N-1){ d.push_back(h[i+1]-h[i]); } d.push_back(-h[N-1]); { set<long long> ss; for(int i=1;i<N;i++){ if(d[i]%X!=0){ ss.insert(0); ss.insert(1); break; } } if(ss.size()>=2){ cout<<"No"<<endl; continue; } } bool f= true; rep(i,K){ bool F0 = false,F1 = false; long long sum = 0; set<long long> s; for(int j=i;j<=N;j+=K){ if(j==0){ F0 = true; continue; } if(j==N){ F1 = true; continue; } sum += d[j]; } if(!f)break; if(sum==0)continue; if(sum>0 && !F0){ f = false; break; } if(sum<0 && !F1){ f = false; break; } } if(f)cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }