提出 #577413
ソースコード 拡げる
#include<bits/stdc++.h>
using namespace std;
#define FZ(n) memset((n),0,sizeof(n))
#define FMO(n) memset((n),-1,sizeof(n))
#define F first
#define S second
#define PB push_back
#define ALL(x) begin(x),end(x)
#define SZ(x) ((int)(x).size())
#define IOS ios_base::sync_with_stdio(0); cin.tie(0)
template<typename A, typename B>
ostream& operator <<(ostream &s, const pair<A,B> &p) {
return s<<"("<<p.first<<","<<p.second<<")";
}
template<typename T>
ostream& operator <<(ostream &s, const vector<T> &c) {
s<<"[ ";
for (auto it : c) s << it << " ";
s<<"]";
return s;
}
// Let's Fight!
const int INF = 102938475;
typedef pair<int, int> pii;
const int MX = 10101;
int N;
int A, B, C, E;
int cls[MX];
int hao[4];
vector<int> el[MX];
pii dis[4][MX];
bool inq[MX];
void build(int start, int id_) {
queue<int> qe;
qe.push(start);
auto d = dis[id_];
for (int i=0; i<=N; i++) {
d[i] = {INF, INF};
inq[i] = 0;
}
d[start] = {0, start};
inq[start] = 1;
while (qe.size()) {
int u = qe.front();
qe.pop();
inq[u] = false;
pii dn = d[u];
for (auto v: el[u]) {
pii dx = {dn.F+1, min(dn.S, v)};
if (d[v] > dx) {
d[v] = dx;
if (not inq[v]) {
qe.push(v);
inq[v] = true;
}
}
}
}
}
int main() {
IOS;
cin >> N;
cin >> A >> B >> C;
hao[1] = hao[2] = hao[3] = 1029384756;
#define _magic(x, y) for (int i=0; i<x; i++) { \
int a; cin >> a; \
cls[a] = y; \
hao[y] = min(hao[y], a); \
} \
_magic(A, 1);
_magic(B, 2);
_magic(C, 3);
cin >> E;
for (int i=0; i<E; i++) {
int u, v; cin >> u >> v;
if (cls[u]) {
u = hao[cls[u]];
}
if (cls[v]) {
v = hao[cls[v]];
}
// if (u == v) continue;
el[u].PB(v);
el[v].PB(u);
}
for (int i=1; i<=3; i++) {
build(hao[i], i);
}
pii ans = {INF, INF};
auto add = [](pii p1, pii p2) -> pii {
return {p1.F+p2.F, min(p1.S, p2.S)};
};
for (int i=1; i<=N; i++) {
pii z{0, INF};
for (int j=1; j<=3; j++) {
z = add(z, dis[j][i]);
}
ans = min(ans, z);
}
cout << ans.F << ' ' << ans.S << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Modern Announce Network |
| ユーザ | bcw0x1bd2 |
| 言語 | C++11 (GCC 4.8.1) |
| 得点 | 100 |
| コード長 | 2159 Byte |
| 結果 | AC |
| 実行時間 | 216 ms |
| メモリ | 7716 KiB |
ジャッジ結果
| セット名 | All | ||
|---|---|---|---|
| 得点 / 配点 | 100 / 100 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| All | 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04, 10_rand_00, 10_rand_01, 10_rand_02, 10_rand_03, 10_rand_04, 10_rand_05, 10_rand_06, 10_rand_07, 11_max_rand_00, 11_max_rand_01, 11_max_rand_02, 11_max_rand_03, 11_max_rand_04, 11_max_rand_05, 11_max_rand_06, 11_max_rand_07, 21_max_path_00, 21_max_path_01, 21_max_path_02, 21_max_path_03, 21_max_path_04, 21_max_path_05, 21_max_path_06, 21_max_path_07, 30_star_00, 30_star_01, 30_star_02, 30_star_03, 30_star_04, 30_star_05, 30_star_06, 30_star_07, 40_clique_00, 40_clique_01, 40_clique_02, 40_clique_03, 40_clique_04, 40_clique_05, 40_clique_06, 40_clique_07, 41_max_clique_00, 41_max_clique_01, 41_max_clique_02, 41_max_clique_03, 41_max_clique_04, 41_max_clique_05, 41_max_clique_06, 41_max_clique_07, 51_max_tree_00, 51_max_tree_01, 51_max_tree_02, 51_max_tree_03, 51_max_tree_04, 51_max_tree_05, 51_max_tree_06, 51_max_tree_07, 90_special_00, 90_special_01, 90_special_02, 90_special_03 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00 | AC | 32 ms | 1684 KiB |
| 00_sample_01 | AC | 26 ms | 1684 KiB |
| 00_sample_02 | AC | 27 ms | 1680 KiB |
| 00_sample_03 | AC | 28 ms | 1584 KiB |
| 00_sample_04 | AC | 26 ms | 1676 KiB |
| 10_rand_00 | AC | 85 ms | 3428 KiB |
| 10_rand_01 | AC | 31 ms | 1936 KiB |
| 10_rand_02 | AC | 153 ms | 4804 KiB |
| 10_rand_03 | AC | 80 ms | 3044 KiB |
| 10_rand_04 | AC | 164 ms | 7076 KiB |
| 10_rand_05 | AC | 132 ms | 5908 KiB |
| 10_rand_06 | AC | 163 ms | 6416 KiB |
| 10_rand_07 | AC | 161 ms | 5528 KiB |
| 11_max_rand_00 | AC | 137 ms | 4784 KiB |
| 11_max_rand_01 | AC | 152 ms | 5300 KiB |
| 11_max_rand_02 | AC | 49 ms | 2336 KiB |
| 11_max_rand_03 | AC | 148 ms | 4624 KiB |
| 11_max_rand_04 | AC | 172 ms | 7716 KiB |
| 11_max_rand_05 | AC | 61 ms | 2608 KiB |
| 11_max_rand_06 | AC | 216 ms | 6972 KiB |
| 11_max_rand_07 | AC | 132 ms | 4524 KiB |
| 21_max_path_00 | AC | 35 ms | 1968 KiB |
| 21_max_path_01 | AC | 38 ms | 2080 KiB |
| 21_max_path_02 | AC | 35 ms | 1824 KiB |
| 21_max_path_03 | AC | 34 ms | 1840 KiB |
| 21_max_path_04 | AC | 35 ms | 1740 KiB |
| 21_max_path_05 | AC | 34 ms | 1840 KiB |
| 21_max_path_06 | AC | 34 ms | 1964 KiB |
| 21_max_path_07 | AC | 35 ms | 1968 KiB |
| 30_star_00 | AC | 35 ms | 1960 KiB |
| 30_star_01 | AC | 29 ms | 1812 KiB |
| 30_star_02 | AC | 34 ms | 1828 KiB |
| 30_star_03 | AC | 34 ms | 1760 KiB |
| 30_star_04 | AC | 29 ms | 1584 KiB |
| 30_star_05 | AC | 30 ms | 1716 KiB |
| 30_star_06 | AC | 30 ms | 1804 KiB |
| 30_star_07 | AC | 29 ms | 1940 KiB |
| 40_clique_00 | AC | 33 ms | 1844 KiB |
| 40_clique_01 | AC | 110 ms | 4656 KiB |
| 40_clique_02 | AC | 32 ms | 1840 KiB |
| 40_clique_03 | AC | 58 ms | 2800 KiB |
| 40_clique_04 | AC | 80 ms | 3748 KiB |
| 40_clique_05 | AC | 90 ms | 3996 KiB |
| 40_clique_06 | AC | 154 ms | 5272 KiB |
| 40_clique_07 | AC | 45 ms | 2228 KiB |
| 41_max_clique_00 | AC | 169 ms | 5668 KiB |
| 41_max_clique_01 | AC | 175 ms | 5672 KiB |
| 41_max_clique_02 | AC | 181 ms | 7708 KiB |
| 41_max_clique_03 | AC | 180 ms | 5996 KiB |
| 41_max_clique_04 | AC | 176 ms | 6180 KiB |
| 41_max_clique_05 | AC | 186 ms | 7456 KiB |
| 41_max_clique_06 | AC | 170 ms | 5672 KiB |
| 41_max_clique_07 | AC | 178 ms | 6044 KiB |
| 51_max_tree_00 | AC | 36 ms | 2060 KiB |
| 51_max_tree_01 | AC | 34 ms | 1976 KiB |
| 51_max_tree_02 | AC | 33 ms | 1716 KiB |
| 51_max_tree_03 | AC | 33 ms | 1744 KiB |
| 51_max_tree_04 | AC | 33 ms | 1844 KiB |
| 51_max_tree_05 | AC | 32 ms | 1844 KiB |
| 51_max_tree_06 | AC | 33 ms | 1964 KiB |
| 51_max_tree_07 | AC | 35 ms | 1964 KiB |
| 90_special_00 | AC | 33 ms | 1844 KiB |
| 90_special_01 | AC | 33 ms | 1840 KiB |
| 90_special_02 | AC | 34 ms | 2000 KiB |
| 90_special_03 | AC | 33 ms | 1976 KiB |