Submission #1148331

#TimeUsernameProblemLanguageResultExecution timeMemory
1148331ghammazhassanBouquet (EGOI24_bouquet)C++20
24 / 100
23 ms14408 KiB
// #include <bits/stdc++.h>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <map>
#include <vector>
#include <iomanip>
#include <string>
#include <queue>
#include <set>
#include <deque>
using namespace std;
#define int long long
#define endl "\n";
const int N=2e5+5;
const int M=1e9+7;
int n , q , x , y , p[N] , cnt[N] , ind[N];
vector<vector<int>>a(N);
vector<int>pr(N);
vector<int>e;
vector<int>l(N);
vector<pair<int,int>>li(N);
void solve()
{
	cin >> n;
	vector<pair<int,int>>a(n);
	for (int i=0;i<n;i++){
		cin >> x >> y;
		a[i]={max(i-x,(int)0),min(i+y,n-1)};
	}
	int i=1;
	int j=0;
	int i1=a[0].second;
	int j1=a[0].first;
	y=0;
	int c=1;
	for (int l;i<i1;i++){
		if (i1>a[i].second){
			i1=a[i].second;
			y=i;
		}
	}
	// cout << y << endl;
	while (i<n){
		i1=n;
		bool f=0;
		for (int l;i<i1;i++){
			if (y<a[i].first and i1>a[i].second){
				i1=a[i].second;
				y=i;
				f=1;
			}
		}
		// cout << y << endl;
		// cout << i << " " << i1 << endl;
		if (f){
			c++;
		}
		else{
			break;
		}
		i=a[y].second+1;
	}
	cout << c << endl;
}
signed main()
{
    ios::sync_with_stdio(0);//DO NOT USE IN INTERACTIVE
    cin.tie(0), cout.tie(0);//DO NOT USE IN INTERACTIVE
    cout << fixed<<setprecision(9);
    int t=1;
    // cin >> t;
    for (int _=1;_<=t;_++){
    	solve();
    }
}
// Fenwick Tree
// Sqrt Decomposition
// Segment Tree
#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...