Submission #1286733

#TimeUsernameProblemLanguageResultExecution timeMemory
1286733WH8Bigger segments (IZhO19_segments)C11
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define pll pair<int, int>
#define mp make_pair
#define pb push_back
#define f first
#define s second
#define endl '\n'
#define ld long double
#define sz(x) static_cast<int>((x).size())
signed main(){
	int n;cin>>n;
	set<pair<int,int>> s;
	vector<int> a(n+1, 0), p(n+1, 0); 
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n;i++)p[i]=a[i]+p[i-1];
	vector<pair<int,int>> dp(n+1, {0, 1e15});
	dp[0]={0, 0};
	s.insert({0, 0});
	for(int i=1;i<=n;i++){
		pair<int,int> from=*prev(s.upper_bound({p[i], 1e15}));
		dp[i]={p[i]-p[from.s], dp[from.s].s+1};
		pair<int,int> ins={dp[i].f + p[i], i};
		if( dp[(*prev(s.upper_bound(ins))).s].s > dp[ins.s].s) continue;
		auto it=s.lower_bound(ins);
		while(it != s.end() and dp[(*it).s].s <= dp[ins.s].s){
			s.erase(it);
			it=s.lower_bound(ins);
		}
		s.insert(ins);
		//~ printf("i %lld, endsum %lld, segments %lld\n", i, dp[i].f, dp[i].s);

		
	}
	cout<<dp[n].s;
}

Compilation message (stderr)

segments.c:1:10: fatal error: bits/stdc++.h: No such file or directory
    1 | #include <bits/stdc++.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.