Submission #623006

# Submission time Handle Problem Language Result Execution time Memory
623006 2022-08-05T01:51:04 Z MinaRagy06 Network (BOI15_net) C++17
0 / 100
1 ms 356 KB
#include <bits/stdc++.h>
using namespace std;
#define lesgooo ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define endl    '\n'
#define int     long long
 
vector<int> adj[2006];
int dist[2006][2006];
void dfs(int i, int sum, int src, int par)
{
    dist[src][i] = sum;
    for (auto nxt : adj[i]) if (nxt != par) dfs(nxt, sum+1, src, i);
}
signed main()
{
    lesgooo;
    int n, u, v;
    cin >> n;
    mt19937 rng(2005);
    for (int i = 1; i < n; i++) cin >> u >> v, adj[--u].push_back(--v), adj[v].push_back(u);
    set<int> leaf;
    for (int i = 0;i < n; i++)
    {
        dfs(i, 0, i, -1);
        if (adj[i].size() == 1) leaf.insert(i);
    }
    cout << (leaf.size()+1)/2 << endl;
    int temp = *leaf.begin();
    while (leaf.size() > 1)
    {
        int cur = *leaf.begin(), mx = -1;
        vector<int> aa;
        for (int i = 0; i < n; i++) if (i != cur && leaf.find(i) != leaf.end())
        {
            if (dist[cur][i] > mx) mx = dist[cur][i], aa.clear(), aa.push_back(i);
            else if (dist[cur][i] == mx) aa.push_back(i);
        }
        int x= aa[rng()%aa.size()];
        cout << cur+1 << " " << x+1 << endl;
        leaf.erase(leaf.begin()), leaf.erase(x);
    }
    if (leaf.size()) cout << *leaf.begin()+1 << " " << (*leaf.begin()+1)%n+1 << endl, leaf.erase(leaf.begin());
    return 0;
}

Compilation message

net.cpp: In function 'int main()':
net.cpp:28:9: warning: unused variable 'temp' [-Wunused-variable]
   28 |     int temp = *leaf.begin();
      |         ^~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 0 ms 340 KB Output is correct
7 Correct 0 ms 284 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 0 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 0 ms 340 KB Output is correct
12 Incorrect 1 ms 356 KB Breaking single line is causing network to disconnect.
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 0 ms 340 KB Output is correct
7 Correct 0 ms 284 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 0 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 0 ms 340 KB Output is correct
12 Incorrect 1 ms 356 KB Breaking single line is causing network to disconnect.
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 0 ms 340 KB Output is correct
7 Correct 0 ms 284 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 0 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 0 ms 340 KB Output is correct
12 Incorrect 1 ms 356 KB Breaking single line is causing network to disconnect.
13 Halted 0 ms 0 KB -