Submission #1635970
Source Code Expand
//#define __USE_MINGW_ANSI_STDIO 0
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define int ll
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<ll> VL;
typedef vector<VL> VVL;
typedef pair<int, int> PII;
#define FOR(i, a, n) for (ll i = (ll)a; i < (ll)n; ++i)
#define REP(i, n) FOR(i, 0, n)
#define ALL(x) x.begin(), x.end()
#define IN(a, b, x) (a<=x&&x<b)
#define MP make_pair
#define PB push_back
const int INF = (1LL<<30);
const ll LLINF = 0x3f3f3f3f3f3f3f3f;
const double PI = 3.14159265359;
const double EPS = 1e-12;
const int MOD = 1000000007;
template <typename T> T &chmin(T &a, const T &b) { return a = min(a, b); }
template <typename T> T &chmax(T &a, const T &b) { return a = max(a, b); }
int dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0};
struct edge{int to, cost;};
int n, d[1010][1010];
vector<edge> g[100010];
void dijkstra(int s) {
priority_queue<PII, vector<PII>, greater<PII>> que;
REP(i, n) d[s][i] = LLINF;
d[s][s] = 0;
que.push(PII{0, s});
while(que.size()) {
PII p = que.top(); que.pop();
int v = p.second;
if(d[s][v] < p.first) continue;
for(edge e: g[v]) {
if(d[s][e.to] > d[s][v] + e.cost) {
d[s][e.to] = d[s][v] + e.cost;
que.push(PII{d[s][e.to], e.to});
}
}
}
}
signed main(void)
{
cin >> n;
int m;
cin >> m;
REP(i, m) {
int a, b;
cin >> a >> b;
g[a].PB({b,1});
g[b].PB({a,1});
}
REP(i, n) dijkstra(i);
int ma1 = 0, mi1 = INF;
// REP(i, n) {
// REP(j, n) {
// cout << d[i][j] << " ";
// }
// cout << endl;
// }
REP(i, n) {
int ma = 0;
REP(j, n) {
if(i == j || d[i][j] == LLINF) continue;
chmax(ma, d[i][j]);
}
chmax(ma1, ma);
chmin(mi1, ma);
}
// cout << mi1 << "," << ma1 << endl;
cin >> n;
cin >> m;
REP(i, n) g[i].clear();
REP(i, m) {
int a, b;
cin >> a >> b;
g[a].PB({b,1});
g[b].PB({a,1});
}
memset(d, 0, sizeof(d));
REP(i, n) dijkstra(i);
int ma2 = 0, mi2 = INF;
REP(i, n) {
int ma = 0;
REP(j, n) {
if(i == j || d[i][j] == LLINF) continue;
chmax(ma, d[i][j]);
}
chmax(ma2, ma);
chmin(mi2, ma);
}
// cout << mi2 << "," << ma2 << endl;
cout << max({ma1, ma2, mi1 + mi2 + 1}) << " " << ma1 + ma2 + 1 << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
C - 直径 |
User |
ferin_tech |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2432 Byte |
Status |
AC |
Exec Time |
265 ms |
Memory |
11136 KB |
Judge Result
Set Name |
Small |
Large |
Score / Max Score |
50 / 50 |
50 / 50 |
Status |
|
|
Set Name |
Test Cases |
Small |
10-small_random-00, 10-small_random-01, 10-small_random-02, 10-small_random-03, 10-small_random-04, 10-small_random-05, 10-small_random-06, 10-small_random-07, 10-small_random-08, 10-small_random-09, 10-small_random-10, 10-small_random-11, 10-small_random-12, 10-small_random-13, 10-small_random-14, 10-small_random-15, 10-small_random-16, 10-small_random-17, 10-small_random-18, 10-small_random-19, 21-small_path-00, 21-small_path-01, 21-small_path-02, 21-small_path-03, 21-small_path-04, 00-sample-00, 00-sample-01, 00-sample-02 |
Large |
00-sample-00, 00-sample-01, 00-sample-02, 10-small_random-00, 10-small_random-01, 10-small_random-02, 10-small_random-03, 10-small_random-04, 10-small_random-05, 10-small_random-06, 10-small_random-07, 10-small_random-08, 10-small_random-09, 10-small_random-10, 10-small_random-11, 10-small_random-12, 10-small_random-13, 10-small_random-14, 10-small_random-15, 10-small_random-16, 10-small_random-17, 10-small_random-18, 10-small_random-19, 20-small_tree-00, 20-small_tree-01, 20-small_tree-02, 20-small_tree-03, 20-small_tree-04, 21-small_path-00, 21-small_path-01, 21-small_path-02, 21-small_path-03, 21-small_path-04, 30-large_random-00, 30-large_random-01, 30-large_random-02, 30-large_random-03, 30-large_random-04, 30-large_random-05, 30-large_random-06, 30-large_random-07, 30-large_random-08, 30-large_random-09, 40-large_comp-00, 40-large_comp-01, 40-large_comp-02, 40-large_comp-03, 40-large_comp-04, 41-large_tree-00, 41-large_tree-01, 41-large_tree-02, 41-large_tree-03, 41-large_tree-04, 42-large_path-00, 42-large_path-01, 42-large_path-02, 42-large_path-03, 42-large_path-04 |
Case Name |
Status |
Exec Time |
Memory |
00-sample-00 |
AC |
4 ms |
10496 KB |
00-sample-01 |
AC |
4 ms |
10496 KB |
00-sample-02 |
AC |
4 ms |
10496 KB |
10-small_random-00 |
AC |
4 ms |
10624 KB |
10-small_random-01 |
AC |
4 ms |
10624 KB |
10-small_random-02 |
AC |
4 ms |
10496 KB |
10-small_random-03 |
AC |
4 ms |
10624 KB |
10-small_random-04 |
AC |
4 ms |
10624 KB |
10-small_random-05 |
AC |
5 ms |
10624 KB |
10-small_random-06 |
AC |
4 ms |
10624 KB |
10-small_random-07 |
AC |
4 ms |
10624 KB |
10-small_random-08 |
AC |
4 ms |
10496 KB |
10-small_random-09 |
AC |
4 ms |
10624 KB |
10-small_random-10 |
AC |
4 ms |
10624 KB |
10-small_random-11 |
AC |
4 ms |
10496 KB |
10-small_random-12 |
AC |
4 ms |
10624 KB |
10-small_random-13 |
AC |
4 ms |
10496 KB |
10-small_random-14 |
AC |
5 ms |
10624 KB |
10-small_random-15 |
AC |
4 ms |
10496 KB |
10-small_random-16 |
AC |
4 ms |
10624 KB |
10-small_random-17 |
AC |
4 ms |
10624 KB |
10-small_random-18 |
AC |
5 ms |
10624 KB |
10-small_random-19 |
AC |
4 ms |
10624 KB |
20-small_tree-00 |
AC |
6 ms |
10624 KB |
20-small_tree-01 |
AC |
4 ms |
10496 KB |
20-small_tree-02 |
AC |
7 ms |
10624 KB |
20-small_tree-03 |
AC |
4 ms |
10496 KB |
20-small_tree-04 |
AC |
164 ms |
10624 KB |
21-small_path-00 |
AC |
4 ms |
10496 KB |
21-small_path-01 |
AC |
4 ms |
10496 KB |
21-small_path-02 |
AC |
4 ms |
10496 KB |
21-small_path-03 |
AC |
4 ms |
10624 KB |
21-small_path-04 |
AC |
4 ms |
10496 KB |
30-large_random-00 |
AC |
17 ms |
11136 KB |
30-large_random-01 |
AC |
5 ms |
10624 KB |
30-large_random-02 |
AC |
7 ms |
10624 KB |
30-large_random-03 |
AC |
4 ms |
10496 KB |
30-large_random-04 |
AC |
22 ms |
10752 KB |
30-large_random-05 |
AC |
4 ms |
10624 KB |
30-large_random-06 |
AC |
12 ms |
10624 KB |
30-large_random-07 |
AC |
5 ms |
10624 KB |
30-large_random-08 |
AC |
264 ms |
11136 KB |
30-large_random-09 |
AC |
265 ms |
11136 KB |
40-large_comp-00 |
AC |
4 ms |
10496 KB |
40-large_comp-01 |
AC |
5 ms |
10624 KB |
40-large_comp-02 |
AC |
5 ms |
10624 KB |
40-large_comp-03 |
AC |
6 ms |
10752 KB |
40-large_comp-04 |
AC |
11 ms |
10752 KB |
41-large_tree-00 |
AC |
4 ms |
10496 KB |
41-large_tree-01 |
AC |
5 ms |
10624 KB |
41-large_tree-02 |
AC |
6 ms |
10624 KB |
41-large_tree-03 |
AC |
29 ms |
10624 KB |
41-large_tree-04 |
AC |
163 ms |
10624 KB |
42-large_path-00 |
AC |
6 ms |
10624 KB |
42-large_path-01 |
AC |
4 ms |
10496 KB |
42-large_path-02 |
AC |
4 ms |
10496 KB |
42-large_path-03 |
AC |
18 ms |
10624 KB |
42-large_path-04 |
AC |
37 ms |
10624 KB |