#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define int long long
typedef pair<int,int> pii;
const int MAXN = 3e5 +5;
int n, ans, sizes[MAXN], dp[MAXN];
vector <int> adj[MAXN];
void dfs1(int x, int pa){
sizes[x] = 1;
dp[x] =0;
for (auto i: adj[x]){
if(i == pa) continue;
dfs1(i, x);
sizes[x] += sizes[i];
dp[x] += dp[i] + sizes[i];
}
}
void dfs2(int x, int pa, int len){
ans = max(ans, dp[x] + len);
for (auto i : adj[x]){
if ( i == pa) continue;
int len2 = len + (dp[x] - dp[i] - sizes[i] + (n-sizes[i]));
dfs2(i, x, len2);
}
}
signed main(){
cin >> n;
for (int i =1; i <=n-1; i++){
int x, y;
cin >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
dfs1(1,0);
dfs2(1,0,0);
cout << ans+n;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgaW50IGxvbmcgbG9uZwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwpjb25zdCBpbnQgTUFYTiA9IDNlNSArNTsKaW50IG4sIGFucywgc2l6ZXNbTUFYTl0sIGRwW01BWE5dOwp2ZWN0b3IgPGludD4gYWRqW01BWE5dOwoKdm9pZCBkZnMxKGludCB4LCBpbnQgcGEpewogICBzaXplc1t4XSA9IDE7CiAgIGRwW3hdID0wOwogICBmb3IgKGF1dG8gaTogYWRqW3hdKXsKICAgICAgIGlmKGkgPT0gcGEpIGNvbnRpbnVlOwogICAgICAgZGZzMShpLCB4KTsKICAgICAgIHNpemVzW3hdICs9IHNpemVzW2ldOwogICAgICAgZHBbeF0gKz0gZHBbaV0gKyBzaXplc1tpXTsKICAgfQp9Cgp2b2lkIGRmczIoaW50IHgsIGludCBwYSwgaW50IGxlbil7CiAgICBhbnMgPSBtYXgoYW5zLCBkcFt4XSArIGxlbik7CiAgICBmb3IgKGF1dG8gaSA6IGFkalt4XSl7CiAgICAgICAgaWYgKCBpID09IHBhKSBjb250aW51ZTsKICAgICAgICBpbnQgbGVuMiA9IGxlbiArIChkcFt4XSAtIGRwW2ldIC0gc2l6ZXNbaV0gKyAgKG4tc2l6ZXNbaV0pKTsKICAgICAgICBkZnMyKGksIHgsIGxlbjIpOwogICAgfQp9CnNpZ25lZCBtYWluKCl7CiAgICBjaW4gPj4gbjsKICAgIGZvciAoaW50IGkgPTE7IGkgPD1uLTE7IGkrKyl7CiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBhZGpbeF0ucHVzaF9iYWNrKHkpOwogICAgICAgIGFkalt5XS5wdXNoX2JhY2soeCk7CiAgICB9CiAgICAKICAgIGRmczEoMSwwKTsKICAgIGRmczIoMSwwLDApOwogICAgY291dCA8PCBhbnMrbjsKfQ==