제출 #580344

#제출 시각아이디문제언어결과실행 시간메모리
580344talant117408Global Warming (CEOI18_glo)C++17
15 / 100
2086 ms1884 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair <int, int> pii; typedef pair <ll, ll> pll; #define long unsigned long #define pb push_back #define mp make_pair #define all(v) (v).begin(),(v).end() #define rall(v) (v).rbegin(),(v).rend() #define lb lower_bound #define ub upper_bound #define sz(v) int((v).size()) #define do_not_disturb ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl '\n' void solve() { int n, x; const int INF = 2e9+2e6; cin >> n >> x; vector <int> v(n); for (auto &to : v) cin >> to; int ans = 0; for (int d = -x; d <= x; d++) { for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { vector <int> dp(n+1, INF); dp[0] = -INF; v[j] += d; for (int k = 0; k < n; k++) { auto it = lb(all(dp), v[k])-dp.begin(); if (dp[it] > v[k]) dp[it] = v[k]; } int cnt = 0; for (int k = 1; k <= n; k++) { if (dp[k] == INF) break; cnt++; } ans = max(ans, cnt); } for (int j = i; j < n; j++) { v[j] -= d; } } } cout << ans; } int main() { do_not_disturb int t = 1; //~ cin >> t; while (t--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...