Submission #2532257
Source Code Expand
// finish date: 2018/05/20
#include <iostream>
#include <cmath>
#include <vector>
#include <bitset>
#include <algorithm>
#include <stack>
#include <queue>
#include <map>
#include <climits>
using namespace std;
#define FOR(i, a, b) for(int (i)=a;(i)<(b);(i)++)
#define rep(i, n) FOR(i,0,n)
#define ll long long
#define vi vector<int>
#define vvi vector<vector<int>>
#define vvvi vector<vector<vector<int>>>
#define vl vector<ll>
#define vvl vector<vector<ll>>
#define vd vector<double>
#define vvd vector<vector<double>>
#define vb vector<bool>
#define vvb vector<vector<bool>>
#define vs vector<string>
#define vc vector<char>
#define vvc vector<vector<char>>
#define bigmod 1000000007
#define INF 1050000000
#define pii pair<int,int>
//prim(ノード数、edge[頂点名][距離、行先の頂点])
ll prim(int N, vector<vector<pii >> edge) {
priority_queue<pii, vector<pii >, greater<pii>> pq;
vb used(N, false);
pq.push(pii(0, 0));
ll total = 0;
while (!pq.empty()) {
int dis, t;
tie(dis, t) = pq.top();
pq.pop();
if (used[t]) continue;
used[t] = true;
total += dis;
for (auto e: edge[t]) {
if (!used[e.second]) pq.push(e);
}
}
return total;
}
int main() {
int N;
cin >> N;
vector<pii > x(N), y(N);
rep(i, N) {
int a, b;
cin >> a >> b;
x[i] = make_pair(a, i);
y[i] = make_pair(b, i);
}
sort(x.begin(), x.end());
sort(y.begin(), y.end());
vector<vector<pii >> edge(N);
FOR(i, 1, N) {
edge[x[i - 1].second].push_back(make_pair(abs(x[i].first - x[i - 1].first), x[i].second));
edge[x[i].second].push_back(make_pair(abs(x[i].first - x[i - 1].first), x[i - 1].second));
edge[y[i - 1].second].push_back(make_pair(abs(y[i].first - y[i - 1].first), y[i].second));
edge[y[i].second].push_back(make_pair(abs(y[i].first - y[i - 1].first), y[i - 1].second));
}
cout << prim(N, edge) << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
D - Built? |
User |
TASSAN |
Language |
C++14 (GCC 5.4.1) |
Score |
500 |
Code Size |
2104 Byte |
Status |
AC |
Exec Time |
168 ms |
Memory |
17528 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
500 / 500 |
Status |
|
|
Set Name |
Test Cases |
Sample |
s1.txt, s2.txt |
All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, s1.txt, s2.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
160 ms |
17528 KB |
02.txt |
AC |
163 ms |
17528 KB |
03.txt |
AC |
168 ms |
17528 KB |
04.txt |
AC |
159 ms |
17528 KB |
05.txt |
AC |
160 ms |
17528 KB |
06.txt |
AC |
161 ms |
17528 KB |
07.txt |
AC |
160 ms |
17528 KB |
08.txt |
AC |
159 ms |
17528 KB |
09.txt |
AC |
155 ms |
17528 KB |
10.txt |
AC |
157 ms |
17528 KB |
11.txt |
AC |
158 ms |
17528 KB |
12.txt |
AC |
160 ms |
17528 KB |
13.txt |
AC |
123 ms |
17528 KB |
14.txt |
AC |
123 ms |
17528 KB |
15.txt |
AC |
105 ms |
15872 KB |
16.txt |
AC |
122 ms |
15872 KB |
17.txt |
AC |
130 ms |
15872 KB |
18.txt |
AC |
129 ms |
15872 KB |
19.txt |
AC |
105 ms |
15872 KB |
20.txt |
AC |
125 ms |
17020 KB |
21.txt |
AC |
121 ms |
16128 KB |
22.txt |
AC |
124 ms |
15872 KB |
23.txt |
AC |
67 ms |
15872 KB |
24.txt |
AC |
113 ms |
16384 KB |
25.txt |
AC |
1 ms |
256 KB |
26.txt |
AC |
1 ms |
256 KB |
s1.txt |
AC |
1 ms |
256 KB |
s2.txt |
AC |
1 ms |
256 KB |