Submission #1288159

#TimeUsernameProblemLanguageResultExecution timeMemory
1288159lambd47Palembang Bridges (APIO15_bridge)C++20
9 / 100
2096 ms580 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=1e16;

//essa porra da AC
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;
    if(k==1){
        int ponte=evs[sz(evs)/2];
        for(auto [a,b]:pevs)dist+=abs(a-ponte)+abs(b-ponte);
        //for(auto a:evs)dist+=abs(a-ponte);
        cout<<dist;
        return;
    }
    int distminaux=MOD;
    if(sz(evs)==0)distminaux=0;
    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...