Submission #797147

#TimeUsernameProblemLanguageResultExecution timeMemory
797147vjudge1Road Construction (JOI21_road_construction)C++14
12 / 100
94 ms13132 KiB
#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std ;
const ll N = (1 << 30) ;
bool flag1 ;
signed main()
{
    ios_base::sync_with_stdio( 0 ) ;
    cin.tie( 0 ) ;
    cout.tie( 0 ) ;
    ll n, k ;
    cin >> n >> k ;
    pair<ll, ll> p[n + 1], py[n + 1] ;
    vector<ll> v ;
    for(ll i = 1 ; i <= n ; i++)
    {
        cin >> p[i].fi >> p[i].se ;
        py[i] = {p[i].se, p[i].fi} ;
        if(p[i].se)flag1 = 1 ;
    }
    if(n <= 1000)
    {
        for(ll i = 1 ; i <= n ; i++)
            for(ll j = i + 1 ; j <= n ; j++)
                v.push_back(abs(p[i].fi - p[j].fi) + abs(p[i].se - p[j].se)) ;
        sort(v.begin(), v.end()) ;
        for(ll i = 0 ; i < k ; i++)
            cout << v[i] << '\n' ;
        return 0 ;
    }
    if(k == 1)
    {
        ll ans = 1e18 ;
        sort(p + 1, p + n + 1) ;
        sort(py + 1, py + n + 1) ;
        for(int i = 2 ; i <= n ; i++)
        {
            ans = min(ans, abs(p[i].fi - p[i - 1].fi) + abs(p[i].se - p[i - 1].se)) ;
            ans = min(ans, abs(py[i].fi - py[i - 1].fi) + abs(py[i].se - py[i - 1].se)) ;
        }
        cout << ans << '\n' ;
        return 0 ;
    }
    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...