Submission #123052

#TimeUsernameProblemLanguageResultExecution timeMemory
123052mechfrog88Lightning Rod (NOI18_lightningrod)C++14
7 / 100
2069 ms262144 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC optimize("unroll-loops,no-stack-protector") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") using namespace __gnu_pbds; using namespace std; template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; typedef long long ll; typedef long double ld; vector <ll> id; ll find(ll i){ if (id[i] <= -1) return i; return id[i] = find(id[i]); } void unio(ll i,ll j){ ll a = find(i); ll b = find(j); if (a == b) return; if (id[a] > id[b]) swap(a,b); id[a] += id[b]; id[b] = a; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); ll n; cin >> n; vector <pair<ll,ll>> arr(n); id.resize(n,-1); for (int z=0;z<n;z++){ cin >> arr[z].first >> arr[z].second; } for (int z=0;z<n;z++){ ll x1 = arr[z].first-arr[z].second; ll x2 = arr[z].first+arr[z].second; for (int x=z+1;x<n;x++){ ll x3 = arr[x].first-arr[x].second; ll x4 = arr[x].first+arr[x].second; if ((x1 <= x3 && x4 <= x2) || (x3 <= x1 && x2 <= x4)){ unio(z,x); } } } ll ans = 0; for (int z=0;z<n;z++){ if (id[z] < 0) ans++; } cout << ans << endl; }
#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...