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
AC × 28
AC × 58
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