답안 #113186

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
113186 2019-05-24T08:09:29 Z Abelyan Network (BOI15_net) C++17
100 / 100
832 ms 78280 KB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;

#define FOR(i,a) for (int i=0;i<(a);++i)
#define FORD(i,a) for (int i=(a)-1;i>=0;i--)
#define FORT(i,a,b) for (int i=(a);i<=(b);++i)
#define FORTD(i,b,a) for (int i=(b);i>=(a);--i)
#define trav(i,v) for (auto i : v)
#define all(v) v.begin(),v.end()
#define ad push_back
#define fr first
#define sc second
#define mpr(a,b) make_pair(a,b)
#define pir pair<int,int>
#define all(v) v.begin(),v.end()
#define make_unique(v) v.erase(unique(all(v),v.end()))
#define fastio ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define dbg(x);
#define dbgv(v);
#define srng mt19937 rng(chrono::steady_clock::now().time_since_epoch().count())
#define y1 EsiHancagorcRepa
#ifdef ALEXPC
#define dbg(x); cout<<#x<<" = "<<x<<endl
#define dbgv(v); cout<<#v<<" = ["; trav(tv,v)cout<<"tv,";cout<<"]"<<endl
#endif

//const int N=100,M=N*N;
const ll MOD=1000*1000*1000+7;

const int N=2*1e6+6,M=6*N,MAXND=N;
const ll MX=1000000000ll*1000000000ll;

int n,d[N];
vector<int> g[N];
vector<int> ans;

void dfs(int v,int par=-1){
    if (d[v]==1){
        ans.push_back(v);
        return;
    }
    trav(to,g[v])if (to!=par)dfs(to,v);
}
int main(){
    fastio;
    srng;
    cin>>n;
    FOR(i,n-1){
        int a,b;
        cin>>a>>b;
        d[a]++;
        d[b]++;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    FORT(i,1,n){
        if (d[i]!=1){
            dfs(i);
            break;
        }
    }
    int k;
    if (ans.size()%2)k=ans.size()/2+1;
    else k=ans.size()/2;
    cout<<k<<endl;
    FOR(i,k){
        if (i+k==ans.size()){
            cout<<ans[i]<<" "<<ans.back()<<endl;
        }
        else cout<<ans[i]<<" "<<ans[i+k]<<endl;
    }
    return 0;
}
/*
3 4
1 2 5
2 3 2
3 1 4
2 3 8
5
2 1 5
2 1 2
2 2 5
2 3 4
2 3 2
*/

Compilation message

net.cpp: In function 'int main()':
net.cpp:71:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (i+k==ans.size()){
             ~~~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 47352 KB Output is correct
2 Correct 48 ms 47480 KB Output is correct
3 Correct 41 ms 47352 KB Output is correct
4 Correct 41 ms 47224 KB Output is correct
5 Correct 41 ms 47356 KB Output is correct
6 Correct 41 ms 47352 KB Output is correct
7 Correct 41 ms 47352 KB Output is correct
8 Correct 51 ms 47356 KB Output is correct
9 Correct 49 ms 47352 KB Output is correct
10 Correct 41 ms 47352 KB Output is correct
11 Correct 40 ms 47352 KB Output is correct
12 Correct 41 ms 47360 KB Output is correct
13 Correct 40 ms 47332 KB Output is correct
14 Correct 40 ms 47352 KB Output is correct
15 Correct 40 ms 47352 KB Output is correct
16 Correct 40 ms 47356 KB Output is correct
17 Correct 41 ms 47352 KB Output is correct
18 Correct 39 ms 47312 KB Output is correct
19 Correct 39 ms 47352 KB Output is correct
20 Correct 40 ms 47224 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 47352 KB Output is correct
2 Correct 48 ms 47480 KB Output is correct
3 Correct 41 ms 47352 KB Output is correct
4 Correct 41 ms 47224 KB Output is correct
5 Correct 41 ms 47356 KB Output is correct
6 Correct 41 ms 47352 KB Output is correct
7 Correct 41 ms 47352 KB Output is correct
8 Correct 51 ms 47356 KB Output is correct
9 Correct 49 ms 47352 KB Output is correct
10 Correct 41 ms 47352 KB Output is correct
11 Correct 40 ms 47352 KB Output is correct
12 Correct 41 ms 47360 KB Output is correct
13 Correct 40 ms 47332 KB Output is correct
14 Correct 40 ms 47352 KB Output is correct
15 Correct 40 ms 47352 KB Output is correct
16 Correct 40 ms 47356 KB Output is correct
17 Correct 41 ms 47352 KB Output is correct
18 Correct 39 ms 47312 KB Output is correct
19 Correct 39 ms 47352 KB Output is correct
20 Correct 40 ms 47224 KB Output is correct
21 Correct 41 ms 47352 KB Output is correct
22 Correct 42 ms 47480 KB Output is correct
23 Correct 41 ms 47460 KB Output is correct
24 Correct 42 ms 47484 KB Output is correct
25 Correct 42 ms 47480 KB Output is correct
26 Correct 41 ms 47360 KB Output is correct
27 Correct 42 ms 47480 KB Output is correct
28 Correct 40 ms 47480 KB Output is correct
29 Correct 41 ms 47352 KB Output is correct
30 Correct 40 ms 47352 KB Output is correct
31 Correct 41 ms 47488 KB Output is correct
32 Correct 40 ms 47324 KB Output is correct
33 Correct 41 ms 47352 KB Output is correct
34 Correct 39 ms 47352 KB Output is correct
35 Correct 40 ms 47352 KB Output is correct
36 Correct 40 ms 47352 KB Output is correct
37 Correct 39 ms 47352 KB Output is correct
38 Correct 40 ms 47352 KB Output is correct
39 Correct 41 ms 47276 KB Output is correct
40 Correct 43 ms 47352 KB Output is correct
41 Correct 107 ms 47324 KB Output is correct
42 Correct 41 ms 47324 KB Output is correct
43 Correct 41 ms 47352 KB Output is correct
44 Correct 40 ms 47224 KB Output is correct
45 Correct 42 ms 47352 KB Output is correct
46 Correct 42 ms 47352 KB Output is correct
47 Correct 42 ms 47360 KB Output is correct
48 Correct 41 ms 47352 KB Output is correct
49 Correct 40 ms 47352 KB Output is correct
50 Correct 40 ms 47352 KB Output is correct
51 Correct 39 ms 47356 KB Output is correct
52 Correct 39 ms 47352 KB Output is correct
53 Correct 39 ms 47352 KB Output is correct
54 Correct 40 ms 47360 KB Output is correct
55 Correct 40 ms 47360 KB Output is correct
56 Correct 41 ms 47352 KB Output is correct
57 Correct 42 ms 47332 KB Output is correct
58 Correct 41 ms 47488 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 47352 KB Output is correct
2 Correct 48 ms 47480 KB Output is correct
3 Correct 41 ms 47352 KB Output is correct
4 Correct 41 ms 47224 KB Output is correct
5 Correct 41 ms 47356 KB Output is correct
6 Correct 41 ms 47352 KB Output is correct
7 Correct 41 ms 47352 KB Output is correct
8 Correct 51 ms 47356 KB Output is correct
9 Correct 49 ms 47352 KB Output is correct
10 Correct 41 ms 47352 KB Output is correct
11 Correct 40 ms 47352 KB Output is correct
12 Correct 41 ms 47360 KB Output is correct
13 Correct 40 ms 47332 KB Output is correct
14 Correct 40 ms 47352 KB Output is correct
15 Correct 40 ms 47352 KB Output is correct
16 Correct 40 ms 47356 KB Output is correct
17 Correct 41 ms 47352 KB Output is correct
18 Correct 39 ms 47312 KB Output is correct
19 Correct 39 ms 47352 KB Output is correct
20 Correct 40 ms 47224 KB Output is correct
21 Correct 41 ms 47352 KB Output is correct
22 Correct 42 ms 47480 KB Output is correct
23 Correct 41 ms 47460 KB Output is correct
24 Correct 42 ms 47484 KB Output is correct
25 Correct 42 ms 47480 KB Output is correct
26 Correct 41 ms 47360 KB Output is correct
27 Correct 42 ms 47480 KB Output is correct
28 Correct 40 ms 47480 KB Output is correct
29 Correct 41 ms 47352 KB Output is correct
30 Correct 40 ms 47352 KB Output is correct
31 Correct 41 ms 47488 KB Output is correct
32 Correct 40 ms 47324 KB Output is correct
33 Correct 41 ms 47352 KB Output is correct
34 Correct 39 ms 47352 KB Output is correct
35 Correct 40 ms 47352 KB Output is correct
36 Correct 40 ms 47352 KB Output is correct
37 Correct 39 ms 47352 KB Output is correct
38 Correct 40 ms 47352 KB Output is correct
39 Correct 41 ms 47276 KB Output is correct
40 Correct 43 ms 47352 KB Output is correct
41 Correct 107 ms 47324 KB Output is correct
42 Correct 41 ms 47324 KB Output is correct
43 Correct 41 ms 47352 KB Output is correct
44 Correct 40 ms 47224 KB Output is correct
45 Correct 42 ms 47352 KB Output is correct
46 Correct 42 ms 47352 KB Output is correct
47 Correct 42 ms 47360 KB Output is correct
48 Correct 41 ms 47352 KB Output is correct
49 Correct 40 ms 47352 KB Output is correct
50 Correct 40 ms 47352 KB Output is correct
51 Correct 39 ms 47356 KB Output is correct
52 Correct 39 ms 47352 KB Output is correct
53 Correct 39 ms 47352 KB Output is correct
54 Correct 40 ms 47360 KB Output is correct
55 Correct 40 ms 47360 KB Output is correct
56 Correct 41 ms 47352 KB Output is correct
57 Correct 42 ms 47332 KB Output is correct
58 Correct 41 ms 47488 KB Output is correct
59 Correct 588 ms 67176 KB Output is correct
60 Correct 832 ms 69480 KB Output is correct
61 Correct 40 ms 47360 KB Output is correct
62 Correct 41 ms 47480 KB Output is correct
63 Correct 543 ms 65188 KB Output is correct
64 Correct 42 ms 47736 KB Output is correct
65 Correct 58 ms 49016 KB Output is correct
66 Correct 233 ms 61688 KB Output is correct
67 Correct 640 ms 77460 KB Output is correct
68 Correct 653 ms 78280 KB Output is correct
69 Correct 59 ms 48120 KB Output is correct
70 Correct 247 ms 55140 KB Output is correct
71 Correct 669 ms 72416 KB Output is correct
72 Correct 684 ms 71652 KB Output is correct
73 Correct 186 ms 53236 KB Output is correct
74 Correct 760 ms 68284 KB Output is correct
75 Correct 94 ms 50168 KB Output is correct
76 Correct 641 ms 72060 KB Output is correct
77 Correct 661 ms 72524 KB Output is correct
78 Correct 74 ms 50428 KB Output is correct
79 Correct 608 ms 75876 KB Output is correct
80 Correct 43 ms 47480 KB Output is correct
81 Correct 222 ms 55132 KB Output is correct
82 Correct 739 ms 70372 KB Output is correct
83 Correct 706 ms 68372 KB Output is correct
84 Correct 716 ms 68208 KB Output is correct
85 Correct 704 ms 68356 KB Output is correct
86 Correct 738 ms 69540 KB Output is correct
87 Correct 750 ms 69452 KB Output is correct