제출 #1331660

#제출 시각아이디문제언어결과실행 시간메모리
1331660Tony_TungHacker (BOI15_hac)C++20
100 / 100
238 ms30556 KiB
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define fi first
#define se second
#define pii pair<int, int>
#define all(x) (x).begin(), (x).end()
using namespace std;

const ll INF = 1e18;
const int N = 5e5 + 5;
ll v[2*N], s[2*N], st[8*N];

void build(int id, int l, int r)
{
    if (l == r)
    {
        st[id] = s[l];
        return;
    }
    int mid = (l+r)/2;
    build(2*id, l, mid);
    build(2*id+1, mid+1, r);
    st[id] = min(st[2*id], st[2*id+1]);
}

ll get(int id, int l, int r, int u, int v)
{
    if (v < l || r < u) return INF;
    if (u <= l && r <= v) return st[id];
    int mid = (l+r)/2;
    return min(get(2*id, l, mid, u, v), get(2*id+1, mid+1, r, u, v));
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    #define task ""
    if (fopen(task".inp", "r"))
    {
        freopen(task".inp", "r", stdin);
        freopen(task".out", "w", stdout);
    }

    int n; cin >> n;
    for (int i = 1; i <= n; i++) cin >> v[i];
    for (int i = 1; i <= n; i++) v[n+i] = v[i];
    for (int i = 1; i <= 2*n; i++) v[i] += v[i-1];
    int m = (n+1)/2;
    int k = 2*n-m+1;
    for (int i = 1; i <= k; i++) s[i] = v[i+m-1] - v[i-1];
    build(1, 1, k);
    ll res = 0;
    for (int i = 1; i <= n; i++) res = max(res, min(get(1, 1, k, max(1, i-m+1), min(i, k)), get(1, 1, k, max(1, i+n-m+1), min(i+n, k))));
    cout << res;

    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

hac.cpp: In function 'int main()':
hac.cpp:42:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |         freopen(task".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
hac.cpp:43:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 |         freopen(task".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...