Submission #1174436

#TimeUsernameProblemLanguageResultExecution timeMemory
1174436TsaganaAdvertisement 2 (JOI23_ho_t2)C++20
59 / 100
4 ms3652 KiB
#include<bits/stdc++.h>

#define IOS ios_base::sync_with_stdio(false);cin.tie();cout.tie();
#define all(x) x.begin(), x.end()
#define int long long
#define pq priority_queue
#define eb emplace_back
#define lb lower_bound
#define ub upper_bound
#define pb push_back
#define pp pop_back
#define F first
#define S second

using namespace std;

pair<int, int> a[1010];
vector<int> adj[1010];
bool vis[1010];

void dfs(int s) {
	if (vis[s]) return ;
	vis[s] = 1;
	for (auto i: adj[s]) dfs(i);
}

void solve () {
	int n;
	cin >> n;
	for(int i = 0; i < n; i++) cin >> a[i].S >> a[i].F;
	sort(a, a + n);
	
	for (int i = n - 1 ; i >= 0 ; i--)
		for (int j = i - 1 ; j >= 0; j--)
			if (abs(a[i].S - a[j].S) <= a[i].F - a[j].F) adj[i].pb(j);
	
	int ans = 0;
	for (int i = n - 1; i >= 0; i--) {
		if (vis[i]) continue ;
		ans++;
		dfs(i);
	}
	cout << ans;
}
signed main() {IOS solve(); return 0;}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...