제출 #1288135

#제출 시각아이디문제언어결과실행 시간메모리
1288135lambd47Palembang Bridges (APIO15_bridge)C++20
0 / 100
1 ms572 KiB
#include<bits/stdc++.h>

using namespace std;

#define int long long

#define L(i,j,k) for(int i=(j);i<=(k);i++)
#define R(i,j,k) for(int i=(j);i>=(k);i--)
#define all(v) (v).begin(),(v).end()
#define sz(v) ((int)(v).size())


const int MOD=1e18;

void solve(){
    int n,k;cin>>k>>n;
    vector<int> evs;//lugar e tipo de evento
    int dist=0;
    vector<pair<int,int>> pevs;
   
    L(i,0,n-1){
        char c1,c2;
        int a,b;
        cin>>c1>>a>>c2>>b;
        if(c1==c2){dist+=abs(a-b);continue;}
        evs.push_back(a);
        evs.push_back(b);
        pevs.push_back({a,b});
        dist++;
    }
    sort(all(evs));
    int distaux=0;
    int distminaux=MOD;
    if(k==1){
        int ponte=evs[sz(evs)/2];
        for(auto [a,b]:pevs)dist+=abs(a-ponte)+abs(b-ponte);
        cout<<dist;
        return;
    }
    L(i,0,sz(evs)-1){
    	L(j,i+1,sz(evs)-1){
    	    distaux=0;
    		for(auto [a,b]:pevs){
    			distaux+=min(abs(a-evs[i])+abs(b-evs[i]),abs(a-evs[j])+abs(b-evs[j]));
			}
			distminaux=min(distaux,distminaux);
		}
	}
	cout<<dist+distminaux;
	
}

int32_t main(){
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	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...