제출 #583776

#제출 시각아이디문제언어결과실행 시간메모리
583776MohamedFaresNebili전선 연결 (IOI17_wiring)C++14
0 / 100
17 ms2656 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>

        using namespace std;
        using namespace __gnu_pbds;

        using ll = long long;
        using pi = pair<ll, pair<ll, ll>>;
        using ii = pair<ll, ll>;

        #define pb push_back
        #define pp pop_back
        #define ff first
        #define ss second
        #define lb lower_bound

        typedef tree<int, null_type, less<int>, rb_tree_tag,
            tree_order_statistics_node_update> indexed_set;

        ll min_total_length(vector<int> R, vector<int> B) {
            int N = R.size(), M = B.size(), res = 0;
            vector<pair<int, int>> arr(N + M);
            for(int l = 0; l < N; l++) arr[l] = {R[l], 1};
            for(int l = 0; l < M; l++) arr[l + N] = {B[l], 0};
            sort(arr.begin(), arr.end()); vector<bool> vis(N, 0);
            for(int l = N - 1, i = 0; l >= 0 && i < M; l--, i++) {
                res += arr[N + i].ff - arr[l].ff; vis[l] = 1;
            }
            for(int l = 2 * N; l < N + M; l++)
                res += arr[l].ff - arr[N - 1].ff;
            for(int l = 0; l < N; l++) {
                if(vis[l]) break;
                res += arr[N].ff - arr[l].ff;
            }
            return res;
        }
#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...