| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1334869 | Zone_zonee | 새로운 문제 (POI13_luk) | C++20 | 87 ms | 18696 KiB |
#include <bits/stdc++.h>
using namespace std;
const int N = 3e5+10;
vector<int> adj[N];
int dist[N], cnt[N];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
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);
}
memset(dist, 0x3f, sizeof dist);
queue<int> q;
q.push(1);
dist[1] = 0;
while(!q.empty()){
int u = q.front(); q.pop();
for(int v : adj[u]){
if(dist[v] > dist[u]+1){
q.push({v});
dist[v] = dist[u]+1;
cnt[dist[v]]++;
}
}
}
int ans = 0;
int spare = 0;
for(int i = 1; i < n; ++i){
if(ans >= cnt[i]){
spare += ans-cnt[i];
continue;
}else if(ans+spare >= cnt[i]){
spare -= cnt[i]-ans;
continue;
}
int needed = cnt[i]-ans-spare;
if(i == 1) ans = cnt[i];
else ans += ceil(1.0*needed/(i-1));
}
cout << ans << '\n';
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
