The issue:↵
↵
Runtime error or memory limit exceeded on sample input case -- details below↵
Your output file fenceplan.out:↵
↵
The correct answer:↵
10↵
↵
probleme link:↵
↵
https://usaco.org/index.php?page=viewproblem2&cpid=944↵
↵
this is my code:↵
↵
↵
~~~~~↵
#include <bits/stdc++.h>↵
#define tests ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t; cin>>t; while(t--)↵
using namespace std;↵
typedef long long ll;↵
#define yes cout<<"YES\n";↵
#define no cout<<"NO\n";↵
#define loop(i,j,k) for(int i = j; i < k; i++)↵
//I SEE YOU :)↵
↵
/*freopen("fenceplan.out", "r", stdin);↵
freopen("fenceplan.out", "w", stdout);*/↵
//blyat↵
const int N=100000;↵
bool visited[N];↵
vector<vector<int>>adj(N);↵
vector<vector<int>>con;↵
void dfs(int s,int co)↵
{↵
if (visited[s])↵
return;↵
con[co].push_back(s);↵
visited[s] = true;↵
for (auto u: adj[s])↵
{↵
dfs(u,co);↵
}↵
}↵
int main()↵
{↵
freopen("fenceplan.out", "r", stdin);↵
freopen("fenceplan.out", "w", stdout);↵
int n,m,a,b,co=-1,ans=INT_MAX;↵
cin>>n>>m;↵
int arr[n][2];↵
for(int i=0; i<n; i++)↵
cin>>arr[i][0]>>arr[i][1];↵
for(int i=0; i<m; i++)↵
{↵
cin>>a>>b;↵
adj[a-1].push_back(b-1);↵
adj[b-1].push_back(a-1);↵
}↵
vector<int>v(0);↵
for(int i=0; i<n; i++)↵
{↵
if(visited[i])↵
continue;↵
co++;↵
con.push_back(v);↵
dfs(i,co);↵
}↵
for(int i=0;i<N;i++)↵
{↵
if(con[i].size()==0)↵
break;↵
int maxx=0,maxy=0,minx=INT_MAX,miny=INT_MAX;↵
for(int j=0;j<con[i].size();j++)↵
{↵
maxx=max(maxx,arr[con[i][j]][0]);↵
maxy=max(maxy,arr[con[i][j]][1]);↵
minx=min(minx,arr[con[i][j]][0]);↵
miny=min(miny,arr[con[i][j]][1]);↵
}↵
ans=min(ans,(maxx-minx+maxy-miny)*2);↵
}↵
cout<<ans<<'\n';↵
}↵
~~~~~↵
↵
↵
↵
↵
Runtime error or memory limit exceeded on sample input case -- details below↵
Your output file fenceplan.out:↵
↵
The correct answer:↵
10↵
↵
probleme link:↵
↵
https://usaco.org/index.php?page=viewproblem2&cpid=944↵
↵
this is my code:↵
↵
↵
~~~~~↵
#include <bits/stdc++.h>↵
#define tests ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t; cin>>t; while(t--)↵
using namespace std;↵
typedef long long ll;↵
#define yes cout<<"YES\n";↵
#define no cout<<"NO\n";↵
#define loop(i,j,k) for(int i = j; i < k; i++)↵
//I SEE YOU :)↵
↵
/*freopen("fenceplan.out", "r", stdin);↵
freopen("fenceplan.out", "w", stdout);*/↵
//blyat↵
const int N=100000;↵
bool visited[N];↵
vector<vector<int>>adj(N);↵
vector<vector<int>>con;↵
void dfs(int s,int co)↵
{↵
if (visited[s])↵
return;↵
con[co].push_back(s);↵
visited[s] = true;↵
for (auto u: adj[s])↵
{↵
dfs(u,co);↵
}↵
}↵
int main()↵
{↵
freopen("fenceplan.out", "r", stdin);↵
freopen("fenceplan.out", "w", stdout);↵
int n,m,a,b,co=-1,ans=INT_MAX;↵
cin>>n>>m;↵
int arr[n][2];↵
for(int i=0; i<n; i++)↵
cin>>arr[i][0]>>arr[i][1];↵
for(int i=0; i<m; i++)↵
{↵
cin>>a>>b;↵
adj[a-1].push_back(b-1);↵
adj[b-1].push_back(a-1);↵
}↵
vector<int>v(0);↵
for(int i=0; i<n; i++)↵
{↵
if(visited[i])↵
continue;↵
co++;↵
con.push_back(v);↵
dfs(i,co);↵
}↵
for(int i=0;i<N;i++)↵
{↵
if(con[i].size()==0)↵
break;↵
int maxx=0,maxy=0,minx=INT_MAX,miny=INT_MAX;↵
for(int j=0;j<con[i].size();j++)↵
{↵
maxx=max(maxx,arr[con[i][j]][0]);↵
maxy=max(maxy,arr[con[i][j]][1]);↵
minx=min(minx,arr[con[i][j]][0]);↵
miny=min(miny,arr[con[i][j]][1]);↵
}↵
ans=min(ans,(maxx-minx+maxy-miny)*2);↵
}↵
cout<<ans<<'\n';↵
}↵
~~~~~↵
↵
↵
↵



