結果
問題 | No.561 東京と京都 |
ユーザー |
![]() |
提出日時 | 2019-10-17 14:49:56 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 23 ms / 2,000 ms |
コード長 | 3,104 bytes |
コンパイル時間 | 1,061 ms |
コンパイル使用メモリ | 101,400 KB |
最終ジャッジ日時 | 2025-01-07 22:09:32 |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 17 |
ソースコード
#include<iostream>#include<vector>#include<algorithm>#include<cctype>#include<utility>#include<string>#include<cmath>#include<cstring>#include<queue>#include<map>#include<set>#include<climits>#include<bitset>#include<stack>#define REP(i, n) for(int i = 0;i < n;i++)#define REPR(i, n) for(int i = n;i >= 0;i--)#define FOR(i, m, n) for(int i = m;i < n;i++)#define FORR(i, m, n) for(int i = m;i >= n;i--)#define SORT(v, n) sort(v, v+n);#define VSORT(v) sort(v.begin(), v.end());#define llong long long#define pb(a) push_back(a)#define repi(itr, ds) for (auto itr = ds.begin(); itr != ds.end(); itr++)using namespace std;typedef long long int ll;typedef pair<int, int> pii;typedef pair<ll, ll> pll;typedef tuple<ll, ll, ll, ll> lltpl;int dy[8] = { 2,2,-2,-2,1,1,-1,-1 };int dx[8] = { 1,-1,1,-1,2,-2,2,-2 };/******************************************************************************************/const int IINF = 1e9 + 7;const ll LINF = 1e18 + 7;const ll MOD = 998244353;template<typename T>vector<T> make_v(size_t a) { return vector<T>(a); }template<typename T, typename... Ts>auto make_v(size_t a, Ts... ts) {return vector<decltype(make_v<T>(ts...))>(a, make_v<T>(ts...));}template<typename T, typename V>typename enable_if<is_class<T>::value == 0>::typefill_v(T& t, const V& v) { t = v; }template<typename T, typename V>typename enable_if<is_class<T>::value != 0>::typefill_v(T& t, const V& v) {for (auto& e : t) fill_v(e, v);}// vectortemplate <typename T>istream& operator>>(istream & is, vector<T> & vec) { for (T& x : vec) is >> x; return is; }// pairtemplate <typename T, typename U>ostream& operator<<(ostream & os, pair<T, U> & pair_var) { os << "(" << pair_var.first << ", " << pair_var.second <<")"; return os; }// vectortemplate <typename T>ostream& operator<<(ostream & os, const vector<T> & vec) { os << "{"; for (int i = 0; i < vec.size(); i++) { os << vec[i] << (i+ 1 == vec.size() ? "" : ", "); }os << "}"; return os; }// maptemplate <typename T, typename U>ostream& operator<<(ostream & os, map<T, U> & map_var) { os << "{"; repi(itr, map_var) { os << *itr; itr++; if(itr != map_var.end()) os << ", "; itr--; }os << "}"; return os; }// settemplate <typename T>ostream& operator<<(ostream & os, set<T> & set_var) { os << "{"; repi(itr, set_var) { os << *itr; itr++; if (itr != set_var.end()) os << ", "; itr--; }os << "}"; return os; }int dp[105][2];int main() {cin.tie(nullptr);ios::sync_with_stdio(false);int N, D;cin >> N >> D;vector<int> T(N), K(N);for (int i = 0; i < N; i++){cin >> T[i] >> K[i];}dp[0][1] = 0;for (int i = 0; i < N; i++){for (int j = 0; j < 2; j++){if (j == 0) {//tokyodp[i + 1][0] = max(dp[i + 1][0], dp[i][0] + T[i]);//kyotodp[i + 1][1] = max(dp[i + 1][1], dp[i][0] - D + K[i]);}else{//kyotoif (i == 0)continue;dp[i + 1][1] = max(dp[i + 1][1], dp[i][1] + K[i]);//tokyodp[i + 1][0] = max(dp[i + 1][0], dp[i][1] - D + T[i]);}}}cout << max(dp[N][0], dp[N][1]) << endl;}