242502026-02-07 12:44:10abcdMobilNet (50 pont)cpp17Időlimit túllépés 38/501.09s25652 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pii=pair<int,int>;

/*
11
1 2 1 5 7 4 3 2 3 5 5 1 5 4 3 1 5 7 7 7 1 6
*/

const int maxn=100001;
map<int,set<pii>> x,y;
bool vis[maxn];
vector<int> adj[maxn];
int n;

void dfs(int v){
    vis[v]=true;
    for(int u:adj[v]) {
        if(!vis[u])dfs(u);
    }
}

bool good(int t){
    for(int i=0;i<n;i++)adj[i].clear();
    for(auto xy:{x,y}){
        for(auto& [i,s]:xy){
            auto [pa,pj]=*s.begin();
            for(auto& [a,j]:s){
                if(j==pj)continue;
                if(a-t<=pa){
                    adj[j].push_back(pj);
                    adj[pj].push_back(j);
                }
                pa=a;pj=j;
            }
        }
    }
    for(int i=0;i<n;i++)vis[i]=false;
    int cnt=0;
    bool ok=true;
    for(int i=0;i<n;i++){
        if(!vis[i]){
            if(cnt==1){
                ok=false;break;
            }
            dfs(i);
            cnt++;
        }
    }
    return ok;
}

int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        int a,b;cin>>a>>b;
        x[a].insert({b,i});
        y[b].insert({a,i});
    }
    ll l=1,r=1e7,t=-1;
    while(l<r){
        ll m=(l+r)/2;
        if(good(m)){
            r=m;
            t=m;
        }else l=m+1;
    }
    cout<<t<<'\n';
    bool _=good(t-1);
    for(int i=0;i<n;i++)vis[i]=false;
    int cnt=0;
    for(int i=0;i<n;i++){
        if(!vis[i]){
            dfs(i);
            cnt++;
        }
    }
    cout<<cnt-1<<'\n';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base38/50
1Elfogadva0/03ms2612 KiB
2Elfogadva0/059ms4660 KiB
3Elfogadva2/24ms2612 KiB
4Elfogadva2/24ms2612 KiB
5Elfogadva2/23ms2612 KiB
6Elfogadva2/26ms2872 KiB
7Elfogadva2/28ms2868 KiB
8Elfogadva2/214ms3352 KiB
9Elfogadva2/224ms3380 KiB
10Elfogadva2/239ms4124 KiB
11Elfogadva2/259ms4908 KiB
12Elfogadva2/2105ms6284 KiB
13Elfogadva3/3184ms7976 KiB
14Elfogadva3/3256ms9288 KiB
15Elfogadva3/3568ms13620 KiB
16Elfogadva3/3634ms13908 KiB
17Elfogadva3/3786ms19252 KiB
18Elfogadva3/3550ms14388 KiB
19Időlimit túllépés0/31.075s18996 KiB
20Időlimit túllépés0/31.088s20020 KiB
21Időlimit túllépés0/31.09s25652 KiB
22Időlimit túllépés0/31.083s24884 KiB