제출 #674400

#제출 시각아이디문제언어결과실행 시간메모리
674400vjudge1지구 온난화 (NOI13_gw)C++17
6 / 40
814 ms16788 KiB
#include <bits/stdc++.h> using namespace std; #define F first #define S second #define pb push_back #define all(a) a.begin(), a.end() typedef long long ll; typedef pair<int, int> ii; const int N = 1e6 + 5; const int mod = 1e9 + 7; int n; int a[N], tmp[N]; int check(int k) { int res = 0; for(int i = 1; i <= n; i++) tmp[i] = (a[i] > k); for(int i = 1; i <= n + 1; i++) res += (tmp[i] == 0 && tmp[i - 1] == 1); return res; } void solve() { cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; int l = 0, r = 2e9, res = 0; while(r - l >= 3) { int midl = l + (r - l) / 3; int midr = r - (r - l) / 3; if(check(midl) >= check(midr)) r = midr; else l = midl; } for(int i = l; i <= r; i++) res = max(res, check(i)); l = 0, r = 2e9; while(r - l >= 3) { int midl = l + (r - l) / 3; int midr = r - (r - l) / 3; if(check(midl) <= check(midr)) l = midl; else r = midr; } for(int i = l; i <= r; i++) res = max(res, check(i)); cout << res; } signed main() { cin.tie(0)->sync_with_stdio(0); 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...