제출 #419879

#제출 시각아이디문제언어결과실행 시간메모리
419879Blagojce전선 연결 (IOI17_wiring)C++11
0 / 100
1 ms312 KiB
#include <bits/stdc++.h> #define fr(i, n, m) for(int i = (n); i < (m); i ++) #define pb push_back #define st first #define nd second #define pq priority_queue #define all(x) begin(x), end(x) using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const ll inf = 1e18; const int i_inf = 1e9; const ll mod = 1e9+7; mt19937 _rand(time(NULL)); const int mxn = 5e5+5; #include "wiring.h" bool ok[mxn]; long long min_total_length(std::vector<int> r, std::vector<int> b){ vector<pair<int,bool> > v; for(auto u : r) v.pb({u, 0}); for(auto u : b) v.pb({u, 1}); sort(all(v)); int n = (int)v.size(); ll ans = 0; fr(i, 0, n){ fr(j, 0, i){ if(v[i].nd != v[j].nd){ if(!ok[j]){ ans += (v[i].st - v[j].st); ok[i] = ok[j] = true; break; } } } } fr(i, 0, n){ if(ok[i]) continue; for(int j = i-1; j >= 0; j --){ if(v[i].nd != v[j].nd){ ans += v[i].st-v[j].st; break; } } } return ans; } /* int main(){ cout<<min_total_length({1, 2, 3, 7}, {0, 4, 5, 9, 10}); } */
#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...