Submission #738834

# Submission time Handle Problem Language Result Execution time Memory
738834 2023-05-09T14:21:36 Z mzv Nizin (COCI16_nizin) C++17
100 / 100
67 ms 10164 KB
#include <bits/stdc++.h>

#define ccd ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define ll long long
#define endl '\n'

using namespace std;

/* ------------------------ hi lol ------------------------ */

ll n,arr[1'000'001],le,ri,ans=0;

int main() {
    ccd
    cin >> n;
    for (int i=1;i<=n;i++) {
    	cin >> arr[i];
    }
    le=1,ri=n;
    while (le<ri) {
    //	cout << le << " " << ri << " " << arr[le] << " " << arr[ri] << endl;
    	if (arr[le]==arr[ri]) {
    		le++; ri--;
    		continue;
    	}
    	else if ((arr[le]+arr[le+1])==arr[ri]) {
    		arr[le+1]+=arr[le];
    		ans++;
    		le+=2;
    		ri--;
    	}
    	else if ((arr[ri]+arr[ri-1])==arr[le]) {
    		arr[ri-1]+=arr[ri];
    		ans++;
    		le++;
    		ri-=2;
    	}
    	else {
    		if ((arr[ri]+arr[ri-1])<=arr[le]) {
    			arr[ri-1]+=arr[ri];
    			ri--;
    			ans++;
    		}
    		else if ((arr[le]+arr[le+1])<=arr[ri]){
    			arr[le+1]+=arr[le];
    			le++;
    			ans++;
    		}
    		else {
    			if ((arr[ri]+arr[ri-1])<arr[le]+arr[le+1]) {
    				arr[ri-1]+=arr[ri];
    				ri--;
    				ans++;
    			}
    			else {
    				arr[le+1]+=arr[le];
    				le++;
    				ans++;
    			}
    		}
    	}
    }
    cout << ans << endl;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 324 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 852 KB Output is correct
2 Correct 6 ms 1216 KB Output is correct
3 Correct 6 ms 1276 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 3024 KB Output is correct
2 Correct 24 ms 4428 KB Output is correct
3 Correct 35 ms 5232 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 67 ms 6212 KB Output is correct
2 Correct 48 ms 8172 KB Output is correct
3 Correct 52 ms 9176 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 51 ms 7996 KB Output is correct
2 Correct 54 ms 10164 KB Output is correct
3 Correct 57 ms 10068 KB Output is correct