Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <vector>
- using namespace std;
- ifstream in("fenceplan.in");
- ofstream out("fenceplan.out");
- struct mazan
- {
- int x,y,ind;
- };
- mazan v[109];
- int maxlat,minlat,maxjos,minjos;
- vector <int> nod[109];
- bool marc[109];
- void dfs(int n)
- {
- marc[n]=1;
- maxlat=max(maxlat,v[n].x);
- minlat=min(minlat,v[n].x);
- minjos=min(minjos,v[n].y);
- maxjos=max(maxjos,v[n].y);
- for(int i=0; i<nod[n].size(); i++)
- if(!marc[nod[n][i]])
- dfs(nod[n][i]);
- return;
- }
- int main()
- {
- int n,m,i,a,b,min1=1000;
- in>>n>>m;
- for(i=1; i<=n; i++)
- in>>v[i].x>>v[i].y;
- for(i=1; i<=m; i++)
- {
- in>>a>>b;
- nod[a].push_back(b);
- nod[b].push_back(a);
- }
- for(i=1; i<=n; i++)
- if(!marc[i])
- {
- maxjos=maxlat=0;
- minjos=minlat=109;
- dfs(i);
- min1=min(min1,2*(maxjos-minjos)+2*(maxlat-minlat));
- }
- out<<min1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement