답안 #486624

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
486624 2021-11-12T07:24:44 Z my04 관광지 (IZhO14_shymbulak) C++17
0 / 100
2 ms 460 KB
#include <bits/stdc++.h>

#define pb push_back
#define mp make_pair
#define sz(x) (int)(x).size()
#define S second
#define F first
#define all(x) (x).begin(), (x).end()

using namespace std;
using ll = long long;

void setIO(string name = "") {
	ios_base::sync_with_stdio(NULL);
	cin.tie(NULL);
	cout.tie(NULL);

	if (sz(name)) {
		freopen((name + ".in").c_str(), "r", stdin);
		freopen((name + ".out").c_str(), "w", stdout);
	}
}

const int inf = 1e9;
const ll INF = 1e18;            
const int mod = 1e9 + 7;
const int MAXN = 1e6 + 5;

#define int ll

int n;
vector<int> g[5005];
int dist[5005][5005];
int cnt[5005][5005];

void solve() {
	cin >> n;

	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			dist[i][j] = inf;
		}
	}

	for (int i = 1; i <= n; i++) {
		dist[i][i] = 0;
	}


	for (int i = 1; i <= n; i++) {
		int a, b;
		cin >> a >> b;
		g[a].pb(b);
		g[b].pb(a);
	
		dist[a][b] = dist[b][a] = 1;
		cnt[a][b]++;
		cnt[b][a]++;
	}
	
	for (int i = 1; i <= n; i++) {
	 	for (int j = 1; j <= n; j++) {
	 		if (i == j) continue;

	 	    for (int k = 1; k <= n; k++) {
	 	    	if (i == k || j == k) continue;

				int val = dist[i][k] + dist[j][k];
	 	    	if (val == dist[i][j]) cnt[i][j] += (cnt[i][k] * cnt[k][j]);
	 	    	else if (val < dist[i][j]) {
	 	    		dist[i][j] = val;
	 	    		cnt[i][j] = cnt[i][k] * cnt[k][j];
	 	    	}
	 	    }
	 	}
	}

	int mx = -inf;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			mx = max(mx, dist[i][j]);
		}
	}

	int res = 0;
	for (int i = 1; i <= n; i++) {
		for (int j = i + 1; j <= n; j++) {
			if (dist[i][j] == mx) res += cnt[i][j];
		}
	}

	cout << res;
}                   	

main() {
	setIO("shymbulak");
	
	int tt = 1;
	// cin >> tt;
	while (tt--) {
		solve();
	}
	
	return 0;
}

Compilation message

shymbulak.cpp:95:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   95 | main() {
      | ^~~~
shymbulak.cpp: In function 'void setIO(std::string)':
shymbulak.cpp:19:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |   freopen((name + ".in").c_str(), "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
shymbulak.cpp:20:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |   freopen((name + ".out").c_str(), "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 460 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 460 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 460 KB Output isn't correct
2 Halted 0 ms 0 KB -