Submission #55842

# Submission time Handle Problem Language Result Execution time Memory
55842 2018-07-09T05:45:31 Z 김세빈(#1563) Telegraph (JOI16_telegraph) C++11
10 / 100
6 ms 3076 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

vector <ll> V[101010], T;
ll P[101010], C[101010];
ll M1[101010], M2[101010];
bool chk[101010];
ll n, ans;

void dfs(ll p, ll r)
{
	ll s, m;
	
	s = m = 0;
	chk[p] = 1;
	
	for(auto t: V[p]){
		if(t != r){
			dfs(t, 0);
			m = max(m, C[t]);
		}
		s += C[t];
	}
	
	if(r){
		M1[p] = s - max(C[r], m);
		M2[p] = s - m;
	}
	else ans += s - m;
}

int main()
{
	ll i, j, k, p, s;
	
	scanf("%lld", &n);
	
	for(i=1;i<=n;i++){
		scanf("%lld%lld", P+i, C+i);
		V[P[i]].push_back(i);
	}
	
	k = 0;
	for(i=1;!chk[i];i=P[i]){
		chk[i] = 1;
		k ++;
	}
	if(k == n){
		printf("0\n");
		return 0;
	}
	
	for(i=1;i<=n;i++) chk[i] = 0;
	
	for(i=1;i<=n;i++){
		if(!chk[i]){
			T.clear();
			for(j=i;!chk[j];j=P[j]) chk[j] = 1;
			T.push_back(j);
			for(k=P[j];k!=j;k=P[k]) T.push_back(k);
			for(j=i;chk[j];j=P[j]) chk[j] = 0;
			
			p = T.back();
			s = 0;
			for(i=0;i<T.size();i++){
				dfs(T[i], p);
				s += M1[T[i]];
				p = T[i];
			}
			
			k = 1e18;
			
			for(i=0;i<T.size();i++){
				k = min(k, s - M1[T[i]] + M2[T[i]]);
			}
			
			ans += k;
		}
	}
	
	printf("%lld\n", ans);
	
	return 0;
}

Compilation message

telegraph.cpp: In function 'int main()':
telegraph.cpp:68:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(i=0;i<T.size();i++){
            ~^~~~~~~~~
telegraph.cpp:76:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(i=0;i<T.size();i++){
            ~^~~~~~~~~
telegraph.cpp:39:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld", &n);
  ~~~~~^~~~~~~~~~~~
telegraph.cpp:42:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld%lld", P+i, C+i);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2788 KB Output is correct
3 Correct 4 ms 2864 KB Output is correct
4 Correct 4 ms 2864 KB Output is correct
5 Correct 4 ms 2864 KB Output is correct
6 Correct 4 ms 2864 KB Output is correct
7 Correct 4 ms 2864 KB Output is correct
8 Correct 4 ms 2864 KB Output is correct
9 Correct 4 ms 2864 KB Output is correct
10 Correct 3 ms 2864 KB Output is correct
11 Correct 4 ms 2864 KB Output is correct
12 Correct 4 ms 2916 KB Output is correct
13 Correct 4 ms 2956 KB Output is correct
14 Correct 4 ms 2968 KB Output is correct
15 Correct 4 ms 2968 KB Output is correct
16 Correct 4 ms 2968 KB Output is correct
17 Correct 5 ms 2968 KB Output is correct
18 Correct 4 ms 2968 KB Output is correct
19 Correct 4 ms 2968 KB Output is correct
20 Correct 4 ms 2968 KB Output is correct
21 Correct 4 ms 2968 KB Output is correct
22 Correct 4 ms 3076 KB Output is correct
23 Correct 4 ms 3076 KB Output is correct
24 Correct 5 ms 3076 KB Output is correct
25 Correct 4 ms 3076 KB Output is correct
26 Correct 4 ms 3076 KB Output is correct
27 Correct 3 ms 3076 KB Output is correct
28 Correct 5 ms 3076 KB Output is correct
29 Correct 4 ms 3076 KB Output is correct
30 Correct 4 ms 3076 KB Output is correct
31 Correct 4 ms 3076 KB Output is correct
32 Correct 4 ms 3076 KB Output is correct
33 Correct 5 ms 3076 KB Output is correct
34 Correct 4 ms 3076 KB Output is correct
35 Correct 4 ms 3076 KB Output is correct
36 Correct 4 ms 3076 KB Output is correct
37 Correct 4 ms 3076 KB Output is correct
38 Correct 4 ms 3076 KB Output is correct
39 Correct 6 ms 3076 KB Output is correct
40 Correct 5 ms 3076 KB Output is correct
41 Correct 6 ms 3076 KB Output is correct
42 Correct 5 ms 3076 KB Output is correct
43 Correct 5 ms 3076 KB Output is correct
44 Correct 4 ms 3076 KB Output is correct
45 Correct 4 ms 3076 KB Output is correct
46 Correct 4 ms 3076 KB Output is correct
47 Correct 4 ms 3076 KB Output is correct
48 Correct 4 ms 3076 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2788 KB Output is correct
3 Correct 4 ms 2864 KB Output is correct
4 Correct 4 ms 2864 KB Output is correct
5 Correct 4 ms 2864 KB Output is correct
6 Correct 4 ms 2864 KB Output is correct
7 Correct 4 ms 2864 KB Output is correct
8 Correct 4 ms 2864 KB Output is correct
9 Correct 4 ms 2864 KB Output is correct
10 Correct 3 ms 2864 KB Output is correct
11 Correct 4 ms 2864 KB Output is correct
12 Correct 4 ms 2916 KB Output is correct
13 Correct 4 ms 2956 KB Output is correct
14 Correct 4 ms 2968 KB Output is correct
15 Correct 4 ms 2968 KB Output is correct
16 Correct 4 ms 2968 KB Output is correct
17 Correct 5 ms 2968 KB Output is correct
18 Correct 4 ms 2968 KB Output is correct
19 Correct 4 ms 2968 KB Output is correct
20 Correct 4 ms 2968 KB Output is correct
21 Correct 4 ms 2968 KB Output is correct
22 Correct 4 ms 3076 KB Output is correct
23 Correct 4 ms 3076 KB Output is correct
24 Correct 5 ms 3076 KB Output is correct
25 Correct 4 ms 3076 KB Output is correct
26 Correct 4 ms 3076 KB Output is correct
27 Correct 3 ms 3076 KB Output is correct
28 Correct 5 ms 3076 KB Output is correct
29 Correct 4 ms 3076 KB Output is correct
30 Correct 4 ms 3076 KB Output is correct
31 Correct 4 ms 3076 KB Output is correct
32 Correct 4 ms 3076 KB Output is correct
33 Correct 5 ms 3076 KB Output is correct
34 Correct 4 ms 3076 KB Output is correct
35 Correct 4 ms 3076 KB Output is correct
36 Correct 4 ms 3076 KB Output is correct
37 Correct 4 ms 3076 KB Output is correct
38 Correct 4 ms 3076 KB Output is correct
39 Correct 6 ms 3076 KB Output is correct
40 Correct 5 ms 3076 KB Output is correct
41 Correct 6 ms 3076 KB Output is correct
42 Correct 5 ms 3076 KB Output is correct
43 Correct 5 ms 3076 KB Output is correct
44 Correct 4 ms 3076 KB Output is correct
45 Correct 4 ms 3076 KB Output is correct
46 Correct 4 ms 3076 KB Output is correct
47 Correct 4 ms 3076 KB Output is correct
48 Correct 4 ms 3076 KB Output is correct
49 Correct 4 ms 3076 KB Output is correct
50 Correct 4 ms 3076 KB Output is correct
51 Correct 5 ms 3076 KB Output is correct
52 Correct 5 ms 3076 KB Output is correct
53 Correct 4 ms 3076 KB Output is correct
54 Correct 4 ms 3076 KB Output is correct
55 Correct 5 ms 3076 KB Output is correct
56 Correct 4 ms 3076 KB Output is correct
57 Correct 4 ms 3076 KB Output is correct
58 Correct 6 ms 3076 KB Output is correct
59 Correct 5 ms 3076 KB Output is correct
60 Correct 4 ms 3076 KB Output is correct
61 Correct 5 ms 3076 KB Output is correct
62 Correct 4 ms 3076 KB Output is correct
63 Correct 5 ms 3076 KB Output is correct
64 Correct 4 ms 3076 KB Output is correct
65 Correct 4 ms 3076 KB Output is correct
66 Correct 4 ms 3076 KB Output is correct
67 Correct 5 ms 3076 KB Output is correct
68 Correct 5 ms 3076 KB Output is correct
69 Correct 5 ms 3076 KB Output is correct
70 Correct 6 ms 3076 KB Output is correct
71 Correct 4 ms 3076 KB Output is correct
72 Correct 3 ms 3076 KB Output is correct
73 Correct 4 ms 3076 KB Output is correct
74 Correct 4 ms 3076 KB Output is correct
75 Correct 5 ms 3076 KB Output is correct
76 Correct 4 ms 3076 KB Output is correct
77 Correct 5 ms 3076 KB Output is correct
78 Correct 4 ms 3076 KB Output is correct
79 Correct 5 ms 3076 KB Output is correct
80 Correct 4 ms 3076 KB Output is correct
81 Correct 5 ms 3076 KB Output is correct
82 Correct 5 ms 3076 KB Output is correct
83 Incorrect 5 ms 3076 KB Output isn't correct
84 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2788 KB Output is correct
3 Correct 4 ms 2864 KB Output is correct
4 Correct 4 ms 2864 KB Output is correct
5 Correct 4 ms 2864 KB Output is correct
6 Correct 4 ms 2864 KB Output is correct
7 Correct 4 ms 2864 KB Output is correct
8 Correct 4 ms 2864 KB Output is correct
9 Correct 4 ms 2864 KB Output is correct
10 Correct 3 ms 2864 KB Output is correct
11 Correct 4 ms 2864 KB Output is correct
12 Correct 4 ms 2916 KB Output is correct
13 Correct 4 ms 2956 KB Output is correct
14 Correct 4 ms 2968 KB Output is correct
15 Correct 4 ms 2968 KB Output is correct
16 Correct 4 ms 2968 KB Output is correct
17 Correct 5 ms 2968 KB Output is correct
18 Correct 4 ms 2968 KB Output is correct
19 Correct 4 ms 2968 KB Output is correct
20 Correct 4 ms 2968 KB Output is correct
21 Correct 4 ms 2968 KB Output is correct
22 Correct 4 ms 3076 KB Output is correct
23 Correct 4 ms 3076 KB Output is correct
24 Correct 5 ms 3076 KB Output is correct
25 Correct 4 ms 3076 KB Output is correct
26 Correct 4 ms 3076 KB Output is correct
27 Correct 3 ms 3076 KB Output is correct
28 Correct 5 ms 3076 KB Output is correct
29 Correct 4 ms 3076 KB Output is correct
30 Correct 4 ms 3076 KB Output is correct
31 Correct 4 ms 3076 KB Output is correct
32 Correct 4 ms 3076 KB Output is correct
33 Correct 5 ms 3076 KB Output is correct
34 Correct 4 ms 3076 KB Output is correct
35 Correct 4 ms 3076 KB Output is correct
36 Correct 4 ms 3076 KB Output is correct
37 Correct 4 ms 3076 KB Output is correct
38 Correct 4 ms 3076 KB Output is correct
39 Correct 6 ms 3076 KB Output is correct
40 Correct 5 ms 3076 KB Output is correct
41 Correct 6 ms 3076 KB Output is correct
42 Correct 5 ms 3076 KB Output is correct
43 Correct 5 ms 3076 KB Output is correct
44 Correct 4 ms 3076 KB Output is correct
45 Correct 4 ms 3076 KB Output is correct
46 Correct 4 ms 3076 KB Output is correct
47 Correct 4 ms 3076 KB Output is correct
48 Correct 4 ms 3076 KB Output is correct
49 Correct 4 ms 3076 KB Output is correct
50 Correct 4 ms 3076 KB Output is correct
51 Correct 5 ms 3076 KB Output is correct
52 Correct 5 ms 3076 KB Output is correct
53 Correct 4 ms 3076 KB Output is correct
54 Correct 4 ms 3076 KB Output is correct
55 Correct 5 ms 3076 KB Output is correct
56 Correct 4 ms 3076 KB Output is correct
57 Correct 4 ms 3076 KB Output is correct
58 Correct 6 ms 3076 KB Output is correct
59 Correct 5 ms 3076 KB Output is correct
60 Correct 4 ms 3076 KB Output is correct
61 Correct 5 ms 3076 KB Output is correct
62 Correct 4 ms 3076 KB Output is correct
63 Correct 5 ms 3076 KB Output is correct
64 Correct 4 ms 3076 KB Output is correct
65 Correct 4 ms 3076 KB Output is correct
66 Correct 4 ms 3076 KB Output is correct
67 Correct 5 ms 3076 KB Output is correct
68 Correct 5 ms 3076 KB Output is correct
69 Correct 5 ms 3076 KB Output is correct
70 Correct 6 ms 3076 KB Output is correct
71 Correct 4 ms 3076 KB Output is correct
72 Correct 3 ms 3076 KB Output is correct
73 Correct 4 ms 3076 KB Output is correct
74 Correct 4 ms 3076 KB Output is correct
75 Correct 5 ms 3076 KB Output is correct
76 Correct 4 ms 3076 KB Output is correct
77 Correct 5 ms 3076 KB Output is correct
78 Correct 4 ms 3076 KB Output is correct
79 Correct 5 ms 3076 KB Output is correct
80 Correct 4 ms 3076 KB Output is correct
81 Correct 5 ms 3076 KB Output is correct
82 Correct 5 ms 3076 KB Output is correct
83 Incorrect 5 ms 3076 KB Output isn't correct
84 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2788 KB Output is correct
3 Correct 4 ms 2864 KB Output is correct
4 Correct 4 ms 2864 KB Output is correct
5 Correct 4 ms 2864 KB Output is correct
6 Correct 4 ms 2864 KB Output is correct
7 Correct 4 ms 2864 KB Output is correct
8 Correct 4 ms 2864 KB Output is correct
9 Correct 4 ms 2864 KB Output is correct
10 Correct 3 ms 2864 KB Output is correct
11 Correct 4 ms 2864 KB Output is correct
12 Correct 4 ms 2916 KB Output is correct
13 Correct 4 ms 2956 KB Output is correct
14 Correct 4 ms 2968 KB Output is correct
15 Correct 4 ms 2968 KB Output is correct
16 Correct 4 ms 2968 KB Output is correct
17 Correct 5 ms 2968 KB Output is correct
18 Correct 4 ms 2968 KB Output is correct
19 Correct 4 ms 2968 KB Output is correct
20 Correct 4 ms 2968 KB Output is correct
21 Correct 4 ms 2968 KB Output is correct
22 Correct 4 ms 3076 KB Output is correct
23 Correct 4 ms 3076 KB Output is correct
24 Correct 5 ms 3076 KB Output is correct
25 Correct 4 ms 3076 KB Output is correct
26 Correct 4 ms 3076 KB Output is correct
27 Correct 3 ms 3076 KB Output is correct
28 Correct 5 ms 3076 KB Output is correct
29 Correct 4 ms 3076 KB Output is correct
30 Correct 4 ms 3076 KB Output is correct
31 Correct 4 ms 3076 KB Output is correct
32 Correct 4 ms 3076 KB Output is correct
33 Correct 5 ms 3076 KB Output is correct
34 Correct 4 ms 3076 KB Output is correct
35 Correct 4 ms 3076 KB Output is correct
36 Correct 4 ms 3076 KB Output is correct
37 Correct 4 ms 3076 KB Output is correct
38 Correct 4 ms 3076 KB Output is correct
39 Correct 6 ms 3076 KB Output is correct
40 Correct 5 ms 3076 KB Output is correct
41 Correct 6 ms 3076 KB Output is correct
42 Correct 5 ms 3076 KB Output is correct
43 Correct 5 ms 3076 KB Output is correct
44 Correct 4 ms 3076 KB Output is correct
45 Correct 4 ms 3076 KB Output is correct
46 Correct 4 ms 3076 KB Output is correct
47 Correct 4 ms 3076 KB Output is correct
48 Correct 4 ms 3076 KB Output is correct
49 Correct 4 ms 3076 KB Output is correct
50 Correct 4 ms 3076 KB Output is correct
51 Correct 5 ms 3076 KB Output is correct
52 Correct 5 ms 3076 KB Output is correct
53 Correct 4 ms 3076 KB Output is correct
54 Correct 4 ms 3076 KB Output is correct
55 Correct 5 ms 3076 KB Output is correct
56 Correct 4 ms 3076 KB Output is correct
57 Correct 4 ms 3076 KB Output is correct
58 Correct 6 ms 3076 KB Output is correct
59 Correct 5 ms 3076 KB Output is correct
60 Correct 4 ms 3076 KB Output is correct
61 Correct 5 ms 3076 KB Output is correct
62 Correct 4 ms 3076 KB Output is correct
63 Correct 5 ms 3076 KB Output is correct
64 Correct 4 ms 3076 KB Output is correct
65 Correct 4 ms 3076 KB Output is correct
66 Correct 4 ms 3076 KB Output is correct
67 Correct 5 ms 3076 KB Output is correct
68 Correct 5 ms 3076 KB Output is correct
69 Correct 5 ms 3076 KB Output is correct
70 Correct 6 ms 3076 KB Output is correct
71 Correct 4 ms 3076 KB Output is correct
72 Correct 3 ms 3076 KB Output is correct
73 Correct 4 ms 3076 KB Output is correct
74 Correct 4 ms 3076 KB Output is correct
75 Correct 5 ms 3076 KB Output is correct
76 Correct 4 ms 3076 KB Output is correct
77 Correct 5 ms 3076 KB Output is correct
78 Correct 4 ms 3076 KB Output is correct
79 Correct 5 ms 3076 KB Output is correct
80 Correct 4 ms 3076 KB Output is correct
81 Correct 5 ms 3076 KB Output is correct
82 Correct 5 ms 3076 KB Output is correct
83 Incorrect 5 ms 3076 KB Output isn't correct
84 Halted 0 ms 0 KB -