結果

問題 No.2922 Rose Garden
ユーザー yurina256yurina256
提出日時 2024-10-12 16:57:18
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 2,805 bytes
コンパイル時間 4,075 ms
コンパイル使用メモリ 233,712 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-12 16:57:53
合計ジャッジ時間 6,205 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 AC 2 ms
5,248 KB
testcase_02 AC 2 ms
5,248 KB
testcase_03 AC 2 ms
5,248 KB
testcase_04 AC 2 ms
5,248 KB
testcase_05 AC 2 ms
5,248 KB
testcase_06 AC 2 ms
5,248 KB
testcase_07 AC 3 ms
5,248 KB
testcase_08 AC 2 ms
5,248 KB
testcase_09 AC 2 ms
5,248 KB
testcase_10 AC 2 ms
5,248 KB
testcase_11 AC 3 ms
5,248 KB
testcase_12 AC 3 ms
5,248 KB
testcase_13 AC 2 ms
5,248 KB
testcase_14 AC 5 ms
5,248 KB
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
testcase_30 AC 20 ms
5,248 KB
testcase_31 AC 14 ms
5,248 KB
testcase_32 AC 37 ms
5,248 KB
testcase_33 AC 7 ms
5,248 KB
testcase_34 AC 23 ms
5,248 KB
testcase_35 AC 23 ms
5,248 KB
testcase_36 AC 98 ms
5,248 KB
testcase_37 AC 10 ms
5,248 KB
testcase_38 AC 14 ms
5,248 KB
testcase_39 AC 58 ms
5,248 KB
testcase_40 WA -
testcase_41 WA -
testcase_42 WA -
testcase_43 WA -
testcase_44 WA -
testcase_45 WA -
testcase_46 WA -
testcase_47 WA -
testcase_48 WA -
testcase_49 WA -
testcase_50 AC 2 ms
5,248 KB
testcase_51 AC 2 ms
5,248 KB
testcase_52 AC 2 ms
5,248 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
#include<atcoder/all>
using namespace std; 
using namespace atcoder;
using mint = modint998244353;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define length size()
#define __STDCPP_FLOAT128_T__
#define Real1024 float128_t
#define int long long
#define ll long long
#define ALL(v) (v).begin(), (v).end()
constexpr ll inf = 1001001001001001001ll;
constexpr ll mod = /* 1000000007*/ 998244353;
constexpr double pi = 3.141592653589793;

//小数出力
//cout << setprecision(12);
//max
template< typename T1, typename T2 >
inline bool chmax(T1 &a, T2 b) { return a < b && (a = b, true); }
//min
template< typename T1, typename T2 >
inline bool chmin(T1 &a, T2 b) { return a > b && (a = b, true); }
//print
void print() { cout << '\n'; }
template<typename T>
void print(const T &t) { cout << t << '\n'; }
template<typename Head, typename... Tail>
void print(const Head &head, const Tail &... tail) {
    cout << head << ' ';
    print(tail...);
}
//join
template<typename T> string join(vector<T> &vec ,const string &sp){
    int si = vec.length;
    if(si==0){
        return "";
    }else{
        stringstream ss;
        rep(i,si-1){
            ss << vec[i] << sp;
        }
        ss << vec[si - 1];
        return ss.str();
    }
}
bool in_range(int l,int x,int r){//閉区間
  return (l <= x ) && (x <= r);
}
int div_ceil(int x,int y){
  return (x+y-1)/y;
}
int blood(char x,char y){
  if(x == 'O' && y == 'O') return 3;
  if((x == 'A' && y == 'B') || (x == 'B' && y == 'A')) return 2;
  if(x == 'A' || y == 'A') return 0;
  return 1;
}
//Template End
 vector<pair<int,int>> p_fact(int N) {
     vector<pair<int,int>> res;
     for (int a = 2; a * a <= N; ++a) {
         if (N % a != 0) continue;
         int ex = 0; // 指数
 
         // 割れる限り割り続ける
         while (N % a == 0) {
             ++ex;
             N /= a;
         }
 
         // その結果を push
         res.push_back({a, ex});
     }
 
     // 最後に残った数について
     if (N != 1) res.push_back({N, 1});
     return res;
 }
void one(){
  cout << 2 << endl;
  cout << 1 << " " << 2 << endl;
  cout << "b g" << endl;
}
signed main(void){
  int n,s,b;
  cin >> n >> s >> b;
  vector<int> vec(s+1,-1);
  vector<int> nvec(s+1,-1);
  cin >> vec[s];
  int lh = vec[s];
  for(int i=1;i<n;i++){
    int h;
    cin >> h;
    bool f = false;
    rep(i,s+1){
      if(lh >= h){
        nvec[i] = vec[i];
        f = true;
      }else{
        int t = div_ceil(h-lh,b);
        if(i>=t){
          nvec[i-t] = vec[i]+b*t;
          f = true;
        }
      }
    }
      if(f) nvec[s] = h;
      else{
        cout << "No" << endl;
        return 0;
      }
      lh = h;
      rep(i,s+1) vec[i] = nvec[i];
      rep(i,s+1) nvec[i] = -1;
  }
  cout << "Yes" << endl;
}
0