Submission #1195080

#TimeUsernameProblemLanguageResultExecution timeMemory
1195080hackstarPalembang Bridges (APIO15_bridge)C++20
0 / 100
2 ms328 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long
#define all(x) x.begin(),x.end()

struct node{
	char home1,off1;
	int home2,off2;
};

void solve(){
	int k,n;
	cin>>k>>n;
	vector<node>a(n);
	for(int i=0;i<n;i++){
		cin>>a[i].home1>>a[i].home2>>a[i].off1>>a[i].off2;
	}
	auto dist=[&](node x,int bridge)->int{
		if(x.home1==x.off1){
			return abs(x.home2-x.off2);
		}
		return 1+abs(x.home2-bridge)+abs(x.off2-bridge);
	};	
	auto calc=[&](int bridge)->int{
		int ans=0;
		for(int i=0;i<n;i++){
			ans+=dist(a[i],bridge);
		}
		return ans;
	};
	auto get_mx=[&](int bridge)->int{
		int ans=dist(a[0],bridge);
		for(int i=1;i<n;i++){
			ans=max(ans,dist(a[i],bridge));
		}
		return ans;
	};
	int bridge=0;
	int mx=calc(bridge);
	for(int i=0;i<n;i++){
		int cur=calc(i);
		if(cur<=mx){
			mx=cur;
			bridge=i;
		}
	}
	cout<<mx<<'\n';
}

signed main(){
	int t=1;
#ifdef LOCAL
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	//cin>>t;
	while(t--){
		solve();
	}
}
#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...