제출 #1299946

#제출 시각아이디문제언어결과실행 시간메모리
1299946tabNizin (COCI16_nizin)C++20
100 / 100
39 ms8268 KiB
#include "bits/stdc++.h"
using namespace std;
#define intt long long
#define fi first
#define se second

const intt mxN = 2e5 + 5;
const intt LG = 20;
const intt inf = 1e18;  

intt n;
vector<intt> a;

void _() { 
    cin >> n;
    a.resize(n);
    for(intt i = 0; i < n; i++) {
        cin >> a[i];
    }
    intt ans = 0, l = 0, r = n - 1;
    while(l < r) {
        intt mid = (l + r) / 2;
        if(a[l] == a[r]) {
            l ++ ;
            r -- ;
        } else {
            intt sol = a[l], sag = a[r];
            while(sol != sag && l < r) {
                if(sol < sag) {
                    l ++ ; sol += a[l];
                    ans++;
                } else {
                    r -- ; sag += a[r];
                    ans++;
                }
            }
            if(sol == sag) {
                a[l] = sol;
                a[r] = sag;
            }
        }
    }
    cout << ans << endl;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    intt t = 1, buu = 1;
    // cin >> t;
    while(t--){
        // cout << "Case #" << buu++ << ": ";
        _();
    }
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...