#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 2e5 + 5, MOD = 1e9 + 7;
ll n, sz[N], d1[N], d2[N];
vector<int> adj[N];
void calc(int v, int p = 0) {
  sz[v] = 1;
  for (auto to : adj[v]) {
    if (to != p) calc(to, v), sz[v] += sz[to];
  }
}
void dfs(int v, int p = 0) {
  d1[v] = sz[v];
  d2[v] = (n - sz[v] + 1);
  ll sum = 0;
  for (auto to : adj[v]) {
    if (to != p) dfs(to, v), d1[v] += d1[to], sum += d1[to];
  }
  for (auto to : adj[v]) {
    if (to != p) {
      d2[v] = max(d2[v], d2[to] + (n - sz[to]) + (sum - d1[to]));
    }
  }
}
void solve() {
  cin >> n;
  for (int i = 1; i < n; ++i) {
    int u, v;
    cin >> u >> v;
    adj[u].push_back(v);
    adj[v].push_back(u);
  }
  int r = -1;
  for (int i = 1; i <= n; ++i) {
    if (adj[i].size() == 1) r = i;
  }
  calc(r);
  dfs(r);
  ll res = 0;
  for (int i = 1; i <= n; ++i) {
    res = max(res, max(d1[i], d2[i]));
  }
  cout << res;
}
int main() {
  ios ::sync_with_stdio(0);
  cin.tie(0);
  int tt = 1;
  while (tt--) {
    solve();
    cout << '\n';
  }
  return 0;
}
