Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma comment(linker, "/STACK:66777216")
- #define _CRT_SECURE_NO_WARNINGS
- //#include <bits/stdc++.h>
- //#include <unordered_set>
- //#include <unordered_map>
- #include <functional>
- #include <algorithm>
- #include <iostream>
- #include <sstream>
- #include <fstream>
- #include <cassert>
- #include <iomanip>
- #include <complex>
- #include <cstring>
- #include <cstdio>
- #include <bitset>
- #include <string>
- #include <vector>
- #include <ctime>
- #include <queue>
- #include <stack>
- #include <cmath>
- #include <list>
- #include <set>
- #include <map>
- #define forn(i,n) for(int i = 0; i < (int)(n); ++ i)
- #define for1(i,n) for(int i = 1; i <= (int)(n); ++ i)
- #define fore(i,a,b) for(int i = (int)(a); i <= (int)(b); ++ i)
- #define ford(i,n) for(int i = (int)(n)-1; i >= 0; -- i)
- #define ford1(i,n) for(int i = (int)(n); i >= 1; -- i)
- #define fored(i,a,b) for(int i = (int)(b); i >= (int)(a);--i)
- #define mp make_pair
- #define pb push_back
- #define sz(v) ((int)((v).size()))
- #define all(v) (v).begin(), (v).end()
- #define FOR(i, n) for (int i = 0; i < (n); ++i)
- //#define fi first
- //#define se second
- using namespace std;
- typedef unsigned long long ULL;
- typedef long long LL;
- typedef long double LD;
- typedef long long i64;
- typedef unsigned long long u64;
- typedef long double ld;
- typedef vector<bool> vb;
- typedef vector<int> vi;
- typedef vector<vi> vvi;
- typedef pair<int,int> pii;
- typedef pair<LL,LL> pll;
- typedef vector<pii> vpi;
- typedef vector<ld> vd;
- typedef pair<ld,ld> pdd;
- typedef vector<pdd> vpd;
- const int N = 2*10000+5, INF = 1000000000;
- int n;
- int x[ N ], y[ N ];
- int p[ N ];
- int d[ N ];
- inline int abs1(int x){
- return x < 0?-x:x;
- }
- inline int D(int i,int j){
- return abs1(x[i]-x[j])+abs1(y[i]-y[j]);
- }
- bool mark[ N ];
- void solve(){
- scanf("%d", &n);
- forn(i,n)
- scanf("%d%d", &x[i], &y[i]);
- forn(i,n){
- p[i] = 0;
- d[i] = D(i,p[i]);
- }
- mark[0] = true;
- int res = 0;
- forn(i,n-1){
- int u, ma = INF;
- forn(j,n){
- if(!mark[j] && ma > d[j]){
- ma = d[j];
- u = j;
- }
- }
- res = max(res,ma);
- mark[u] = true;
- forn(j,n){
- if(!mark[j]){
- int v = D(u,j);
- if(v < d[j]){
- d[j] = v;
- p[j] = u;
- }
- }
- }
- }
- printf("%d\n", res);
- }
- void testgen(){
- FILE * f = fopen("input.txt", "w");
- int T = 2*100*100;
- fprintf(f, "%d\n", T);
- forn(i,T){
- fprintf(f, "%d %d\n", rand(), rand());
- }
- // srand(time(NULL));
- fclose(f);
- }
- int main() {
- #ifdef HOME
- testgen();
- freopen("input.txt", "r", stdin);
- // freopen("output.txt", "w", stdout);
- #else
- #define task "combo"
- // freopen(task".in", "r", stdin);
- // freopen(task".out", "w", stdout);
- #endif
- cout<<fixed;
- cout.precision(15);
- cerr<<fixed;
- cerr.precision(3);
- solve();
- #ifdef HOME
- cerr<<"Execution time = "<<clock()/1000.0<<"ms\n";
- #endif
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement