제출 #674399

#제출 시각아이디문제언어결과실행 시간메모리
674399vjudge1지구 온난화 (NOI13_gw)C++17
12 / 40
651 ms17480 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 = *max_element(a + 1, a + 1 + n), 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));
    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...