Submission #1157722

#TimeUsernameProblemLanguageResultExecution timeMemory
1157722adlinRoad Construction (JOI21_road_construction)C++20
5 / 100
85 ms9356 KiB
#include <bits/stdc++.h> #define F first #define S second #define pb push_back #define int long long using namespace std; typedef long long ll; const int maxn = 250001; int n,k; pair <int,int> a[maxn]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); bool ok = 1; cin >> n >> k; for(int i = 1; i <= n; i++){ cin >> a[i].F >> a[i].S; if(a[i].S) ok = 0; } if(n <= 1000){ vector <ll> v; for(int i = 1; i <= n; i++){ for(int j = i + 1; j <= n; j++){ v.pb((ll)abs(a[i].F-a[j].F) + abs(a[i].S-a[j].S)); } } sort(v.begin(),v.end()); for(int i = 0; i < k; i++) cout << v[i] << '\n'; } else if(ok){ sort(a + 1, a + n + 1); vector <ll> v; ll cur = 0; for(int i = 1; i < n; i++){ if(cur + n - i <= k){ int l = 1, r = i + 1; while(r <= n){ v.pb((ll)abs(a[r].F - a[l].F)); l++; r++; } cur += n - i; } else { int l = 1, r = i + 1; vector <ll> v2; while(r <= n){ v2.pb((ll)abs(a[r].F - a[l].F)); l++; r++; } k -= cur; sort(v2.begin(),v2.end()); for(int j = 0; j < k; j++) v.pb(v2[j]); break; } } sort(v.begin(),v.end()); for(auto i : v) cout << i << '\n'; } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...