Submission #48088

#TimeUsernameProblemLanguageResultExecution timeMemory
48088TheDarkningPalembang Bridges (APIO15_bridge)C++17
0 / 100
18 ms600 KiB
/**
                  ▄█▀ ▀█▀ ▄▀▄ █▀ █▄█▄█ ▄▀▄ █▀ ▄█▀
                  <⇋⇋⇋⋛∰≓⊂(⌒,_ゝ⌒)⊃≓∰⋛⇋⇋⇋>

            ♔♕♖♗♘♙ ☜❷☞✪ ィℋ६ ≈ ᗫẵℜℵĬŊĞ ✪☜❷☞ ♚♛♜♝♞♟
            ♔♕♖♗♘♙                             ♚♛♜♝♞♟
                      ˙·٠•●♥ Ƹ̵̡Ӝ̵̨̄Ʒ ♥●•٠·˙
1 5
B 0 A 4
B 1 B 3
A 5 B 7
B 2 A 6
B 1 A 7

**/

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <time.h>
#include <map>
#include <deque>
#include <assert.h>
#include <queue>
#include <string>
#include <memory.h>
#include <set>
#include <math.h>

#define sz(s) s.size()
#define pb emplace_back
#define fr first
#define sc second
#define mk make_pair
#define all(s) s.begin(), s.end()
#define ok puts("ok");

using namespace std;

const int N = 2e5 + 5;
const int inf = 1e9 + 7;

int n, k, ans = inf, a[N], b[N];
char t1[N], t2[N];

main(){
    cin >> k >> n;
    for( int i = 1; i <= n; i++ ){
        cin >> t1[i] >> a[i] >> t2[i] >> b[i];
    }
    for( int i = 1; i <= n; i++ ){
        int sum = 0;
        for( int j = 1; j <= n; j++ ){
            if( t1[ j ] == t2[ j ] ){
                sum += abs( a[ j ] - b[ j ] );
                continue;
            }
            if( a[ j ] > a[ i ] and b[ j ] > a[ i ] ){
                sum += abs( a[ j ] - a[ i ] ) + abs( b[ j ] - a[ i ] );
            }
            else if( a[ j ] < a[ i ] and b[ j ] < a[ i ] ){
                sum += abs( a[ j ] - a[ i ] ) + abs( b[ j ] - a[ i ] );
            }
            else{
                sum += abs( a[ j ] - b[ j ] );
            }
            sum ++;
        }
        ans = min( ans, sum );
        sum = 0;
        for( int j = 1; j <= n; j++ ){
            if( t1[ j ] == t2[ j ] ){
                sum += abs( a[ j ] - b[ j ] );
                continue;
            }
            if( a[ j ] > b[ i ] and b[ j ] > b[ i ] ){
                sum += abs( a[ j ] - b[ i ] ) + abs( b[ j ] - b[ i ] );
            }
            else if( a[ j ] < b[ i ] and b[ j ] < b[ i ] ){
                sum += abs( a[ j ] - b[ i ] ) + abs( b[ j ] - b[ i ] );
            }
            else{
                sum += abs( a[ j ] - b[ j ] );
            }
            sum ++;
        }
        ans = min( ans, sum );
    }
    cout << ans;
}

Compilation message (stderr)

bridge.cpp:48:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
#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...