답안 #794337

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
794337 2023-07-26T12:56:33 Z qwerasdfzxcl Travelling Trader (CCO23_day2problem2) C++17
25 / 25
441 ms 180212 KB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

int n;
vector<int> adj[200200];
ll a[200200];

namespace foo{

ll dp[200200];
int nxt[200200];

void dfs(int s, int pa = 0){
	dp[s] = a[s], nxt[s] = 0;
	for (auto &v:adj[s]) if (v!=pa){
		dfs(v, s);
		if (dp[s] < dp[v] + a[s]){
			dp[s] = dp[v] + a[s];
			nxt[s] = v;
		}
	}
}

void solve1(){
	dfs(1);
	printf("%lld\n", dp[1]);

	vector<int> V;
	for (int i=1;i;i=nxt[i]){
		V.push_back(i);
	}

	printf("%d\n", (int)V.size());
	for (auto &x:V) printf("%d ", x);
	printf("\n");
}

} // namespace foo


namespace bar{

constexpr ll INF = 4e18;

ll dp[200200][2][3];
int v1[200200], v2[200200][2], v3[200200][3], typ2[200200], typ3[200200], nxt[200200];
vector<int> G[200200];

void dfs(int s, int pa = 0){
	vector<pair<ll, int>> C1, C2, C3, C6;
	for (int i=1;i<=3;i++){
		C1.emplace_back(0, -i);
		C2.emplace_back(0, -i);
		C3.emplace_back(0, -i);
		C6.emplace_back(0, -i);
	}

	ll sum = 0;
	int deg = 0;

	for (auto &v:adj[s]) if (v!=pa){
		G[s].push_back(v);
		dfs(v, s);
		sum += a[v];
		deg++;

		C1.emplace_back(dp[v][1][0] - a[v], v);
		C2.emplace_back(dp[v][0][2] - a[v], v);
		C3.emplace_back(dp[v][1][2], v);
		C6.emplace_back(dp[v][0][1] - a[v], v);
	}

	sort(C1.begin(), C1.end(), greater<pair<ll, int>>());
	sort(C2.begin(), C2.end(), greater<pair<ll, int>>());
	sort(C3.begin(), C3.end(), greater<pair<ll, int>>());
	sort(C6.begin(), C6.end(), greater<pair<ll, int>>());

	// calc 0 1
	dp[s][0][1] = a[s] + sum;
	dp[s][0][1] += C1[0].first;
	v1[s] = C1[0].second;

	if (deg==0) dp[s][0][1] = -INF;

	// calc 0 2
	dp[s][0][2] = -INF;
	for (int i=0;i<2;i++){
		for (int j=0;j<2;j++) if (C1[i].second != C2[j].second){
			ll val = a[s] + sum + C1[i].first + C2[j].first;

			if (dp[s][0][2] < val){
				dp[s][0][2] = val;
				typ2[s] = 2;

				v2[s][0] = C1[i].second;
				v2[s][1] = C2[j].second;
			}
		}
	}

	if (dp[s][0][2] < a[s] + C3[0].first){
		dp[s][0][2] = a[s] + C3[0].first;
		typ2[s] = 1;

		v2[s][0] = C3[0].second;
	}

	// calc 1 2
	dp[s][1][2] = -INF;

	vector<pair<ll, int>> C4 = C1;
	for (auto &v:adj[s]) if (v!=pa) C4.emplace_back(0, n+v);
	sort(C4.begin(), C4.end(), greater<pair<ll, int>>());

	for (int i=0;i<min(6, (int)C4.size());i++){
		for (int j=0;j<3;j++){
			for (int k=0;k<3;k++){
				int rc4 = C4[i].second;
				if (rc4 > n) rc4 -= n;
				if (rc4==C1[j].second || rc4==C2[k].second || C1[j].second==C2[k].second) continue;
				if (rc4 < 0) continue;

				ll val = a[s] + sum + C4[i].first + C1[j].first + C2[k].first;

				if (dp[s][1][2] < val){
					dp[s][1][2] = val;
					typ3[s] = 3;

					v3[s][0] = C4[i].second;
					v3[s][1] = C1[j].second;
					v3[s][2] = C2[k].second;
				}
			}
		}
	}

	for (int i=0;i<min(4, (int)C4.size());i++){
		for (int j=0;j<2;j++) if (C4[i].second != C3[j].second && C4[i].second > 0){
			int rc4 = C4[i].second;
			if (rc4 > n) rc4 -= n;
			if (rc4==C3[j].second) continue;
			if (rc4 < 0) continue;

			ll val = a[s] + C4[i].first + C3[j].first;
			if (C4[i].second > 0) val += a[rc4];

			if (dp[s][1][2] < val){
				dp[s][1][2] = val;
				typ3[s] = 2;

				v3[s][0] = C4[i].second;
				v3[s][1] = C3[j].second;
			}
		}
	}

	vector<pair<ll, int>> C5;

	for (int i=0;i<(int)C3.size();i++) if (C3[i].second > 0){
		C5.emplace_back(C3[i].first-a[C3[i].second], C3[i].second);
	}

	sort(C5.begin(), C5.end(), greater<pair<ll, int>>());
	for (int i=0;i<2;i++){
		for (int j=0;j<min(2, (int)C5.size());j++) if (C6[i].second != C5[j].second){
			ll val = a[s] + sum + C5[j].first + C6[i].first;
			if (dp[s][1][2] < val){
				dp[s][1][2] = val;
				typ3[s] = 1;

				v3[s][0] = C6[i].second;
				v3[s][1] = C5[j].second;

			}
		}
	}

	if (deg==0) dp[s][1][2] = -INF;

	// calc 1 0
	dp[s][1][0] = dp[s][0][1];

	if (dp[s][1][2] < dp[s][1][0]) dp[s][1][2] = dp[s][1][0], typ3[s] = 0;
}

pair<int, int> track(int s, int x, int y){
	if (x==0 && y==0) return {s, s};
	assert(s > 0);
	assert(dp[s][x][y] >= 0);

	if (x==1 && y==2 && typ3[s]==0) y = 0;

	if (x==0 && y==1){
		pair<int, int> ret = {s, s};

		if (v1[s] > 0){
			auto [l1, r1] = track(v1[s], 1, 0);
			nxt[s] = l1;
			ret.second = r1;

			G[s].erase(find(G[s].begin(), G[s].end(), v1[s]));
		}

		for (auto &v:G[s]){
			nxt[ret.second] = v;
			ret.second = v;
		}

		return ret;
	}

	if (x==0 && y==2){
		pair<int, int> ret = {s, s};

		if (typ2[s]==1){
			if (v2[s][0] > 0){
				auto [l1, r1] = track(v2[s][0], 1, 2);
				nxt[s] = l1;

				ret.second = r1;
			}

			return ret;
			
		}

		// else (typ2[s]==2)
		if (v2[s][0] > 0){
			auto [l1, r1] = track(v2[s][0], 1, 0);
			nxt[s] = l1;

			ret.second = r1;
			G[s].erase(find(G[s].begin(), G[s].end(), v2[s][0]));
		}

		if (v2[s][1] > 0){
			G[s].erase(find(G[s].begin(), G[s].end(), v2[s][1]));
		}

		for (auto &v:G[s]){
			nxt[ret.second] = v;
			ret.second = v;
		}

		if (v2[s][1] > 0){
			nxt[ret.second] = v2[s][1];
			ret.second = v2[s][1];

			auto [l2, r2] = track(v2[s][1], 0, 2);
			ret.second = r2;
		}

		return ret;
	}

	if (x==1 && y==0){
		pair<int, int> ret = {s, s};

		if (v1[s] > 0){
			auto [l1, r1] = track(v1[s], 0, 1);
			nxt[r1] = s;
			ret.first = l1;

			G[s].erase(find(G[s].begin(), G[s].end(), v1[s]));
		}

		for (auto &v:G[s]){
			nxt[v] = ret.first;
			ret.first = v;
		}

		assert(ret.first != s);
		return ret;
	}

	assert(x==1 && y==2);

	pair<int, int> ret = {s, s};

	if (typ3[s]==2){
		if (v3[s][0] > 0){
			int rv3 = v3[s][0], ri = 0, rj = 1;
			if (v3[s][0] > n) rv3 = v3[s][0]-n, ri = 0, rj = 0;

			auto [l1, r1] = track(rv3, ri, rj);
			ret.first = l1;
			nxt[r1] = s;

			G[s].erase(find(G[s].begin(), G[s].end(), rv3));
		}

		if (v3[s][1] > 0){
			auto [l2, r2] = track(v3[s][1], 1, 2);
			nxt[s] = l2;
			ret.second = r2;
		}

		assert(ret.first != s);
		return ret;
	}

	if (typ3[s]==1){
		assert(v3[s][1] > 0);
		G[s].erase(find(G[s].begin(), G[s].end(), v3[s][1]));

		if (v3[s][0] > 0){
			G[s].erase(find(G[s].begin(), G[s].end(), v3[s][0]));

			auto [l2, r2] = track(v3[s][0], 0, 1);
			nxt[r2] = ret.first;
			ret.first = l2;
		}

		for (auto &v:G[s]){
			nxt[v] = ret.first;
			ret.first = v;
		}



		auto [l1, r1] = track(v3[s][1], 1, 2);
		nxt[s] = l1;
		ret.second = r1;

		return ret;
	}

	//typ3[s] == 3
	if (v3[s][0] > 0){
		int rv3 = v3[s][0], ri = 0, rj = 1;
		if (v3[s][0] > n) rv3 = v3[s][0]-n, ri = 0, rj = 0;

		auto [l1, r1] = track(rv3, ri, rj);
		ret.first = l1;
		nxt[r1] = s;

		G[s].erase(find(G[s].begin(), G[s].end(), rv3));
	}

	if (v3[s][1] > 0){
		auto [l2, r2] = track(v3[s][1], 1, 0);
		nxt[s] = l2;
		ret.second = r2;

		G[s].erase(find(G[s].begin(), G[s].end(), v3[s][1]));
	}

	if (v3[s][2] > 0){
		G[s].erase(find(G[s].begin(), G[s].end(), v3[s][2]));
	}

	for (auto &v:G[s]){
		nxt[ret.second] = v;
		ret.second = v;
	}

	if (v3[s][2] > 0){
		auto [l3, r3] = track(v3[s][2], 0, 2);
		nxt[ret.second] = l3;
		ret.second = r3;
	}

	assert(ret.first != s);
	return ret;
}

ll solve2(){
	for (int i=1;i<=n;i++) nxt[i] = 0, G[i].clear();
	dfs(1);

	ll ans = dp[1][0][2];
	printf("%lld\n", ans);

	track(1, 0, 2);

	vector<int> V;
	for (int i=1;i;i=nxt[i]){
		V.push_back(i);
	} 

	printf("%d\n", (int)V.size());
	for (auto &x:V) printf("%d ", x);
	printf("\n");

	return ans;
}

} // namespace bar

namespace baz{

void dfs1(int s, int pa);
void dfs2(int s, int pa);

vector<int> V;

void dfs1(int s, int pa){
	V.push_back(s);
	for (auto &v:adj[s]) if (v!=pa) dfs2(v, s);
}

void dfs2(int s, int pa){
	for (auto &v:adj[s]) if (v!=pa) dfs1(v, s);
	V.push_back(s);
}

void solve3(){
	dfs1(1, 0);

	ll sum = 0;
	for (int i=1;i<=n;i++) sum += a[i];

	printf("%lld\n", sum);
	printf("%d\n", n);
	for (auto &x:V) printf("%d ", x);
	printf("\n");
}

} // namespace baz


int main(){
	int k;
	scanf("%d %d", &n, &k);

	for (int i=1;i<=n-1;i++){
		int x, y;
		scanf("%d %d", &x, &y);
		adj[x].push_back(y);
		adj[y].push_back(x);
	}

	for (int i=1;i<=n;i++) scanf("%lld", a+i);

	if (k==1) foo::solve1();
	else if (k==2) bar::solve2();
	else baz::solve3();
}

Compilation message

Main.cpp: In function 'int main()':
Main.cpp:426:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  426 |  scanf("%d %d", &n, &k);
      |  ~~~~~^~~~~~~~~~~~~~~~~
Main.cpp:430:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  430 |   scanf("%d %d", &x, &y);
      |   ~~~~~^~~~~~~~~~~~~~~~~
Main.cpp:435:30: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  435 |  for (int i=1;i<=n;i++) scanf("%lld", a+i);
      |                         ~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 9684 KB Output is correct
2 Correct 5 ms 9684 KB Output is correct
3 Correct 95 ms 20048 KB Output is correct
4 Correct 108 ms 20012 KB Output is correct
5 Correct 99 ms 19828 KB Output is correct
6 Correct 107 ms 20616 KB Output is correct
7 Correct 72 ms 20548 KB Output is correct
8 Correct 87 ms 20212 KB Output is correct
9 Correct 145 ms 34528 KB Output is correct
10 Correct 131 ms 27300 KB Output is correct
11 Correct 68 ms 19860 KB Output is correct
12 Correct 4 ms 9684 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 9716 KB Output is correct
2 Correct 4 ms 9684 KB Output is correct
3 Correct 5 ms 9684 KB Output is correct
4 Correct 5 ms 9740 KB Output is correct
5 Correct 5 ms 9684 KB Output is correct
6 Correct 5 ms 9684 KB Output is correct
7 Correct 5 ms 9684 KB Output is correct
8 Correct 5 ms 9684 KB Output is correct
9 Correct 5 ms 9728 KB Output is correct
10 Correct 5 ms 9684 KB Output is correct
11 Correct 5 ms 9684 KB Output is correct
12 Correct 5 ms 9684 KB Output is correct
13 Correct 5 ms 9684 KB Output is correct
14 Correct 5 ms 9684 KB Output is correct
15 Correct 5 ms 9684 KB Output is correct
16 Correct 5 ms 9812 KB Output is correct
17 Correct 5 ms 9700 KB Output is correct
18 Correct 5 ms 9708 KB Output is correct
19 Correct 5 ms 9684 KB Output is correct
20 Correct 5 ms 9812 KB Output is correct
21 Correct 5 ms 9812 KB Output is correct
22 Correct 5 ms 9812 KB Output is correct
23 Correct 5 ms 9812 KB Output is correct
24 Correct 5 ms 9684 KB Output is correct
25 Correct 5 ms 9684 KB Output is correct
26 Correct 5 ms 9684 KB Output is correct
27 Correct 5 ms 9684 KB Output is correct
28 Correct 5 ms 9684 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 9716 KB Output is correct
2 Correct 4 ms 9684 KB Output is correct
3 Correct 5 ms 9684 KB Output is correct
4 Correct 5 ms 9740 KB Output is correct
5 Correct 5 ms 9684 KB Output is correct
6 Correct 5 ms 9684 KB Output is correct
7 Correct 5 ms 9684 KB Output is correct
8 Correct 5 ms 9684 KB Output is correct
9 Correct 5 ms 9728 KB Output is correct
10 Correct 5 ms 9684 KB Output is correct
11 Correct 5 ms 9684 KB Output is correct
12 Correct 5 ms 9684 KB Output is correct
13 Correct 5 ms 9684 KB Output is correct
14 Correct 5 ms 9684 KB Output is correct
15 Correct 5 ms 9684 KB Output is correct
16 Correct 5 ms 9812 KB Output is correct
17 Correct 5 ms 9700 KB Output is correct
18 Correct 5 ms 9708 KB Output is correct
19 Correct 5 ms 9684 KB Output is correct
20 Correct 5 ms 9812 KB Output is correct
21 Correct 5 ms 9812 KB Output is correct
22 Correct 5 ms 9812 KB Output is correct
23 Correct 5 ms 9812 KB Output is correct
24 Correct 5 ms 9684 KB Output is correct
25 Correct 5 ms 9684 KB Output is correct
26 Correct 5 ms 9684 KB Output is correct
27 Correct 5 ms 9684 KB Output is correct
28 Correct 5 ms 9684 KB Output is correct
29 Correct 7 ms 9940 KB Output is correct
30 Correct 6 ms 9940 KB Output is correct
31 Correct 7 ms 9940 KB Output is correct
32 Correct 7 ms 10068 KB Output is correct
33 Correct 7 ms 10012 KB Output is correct
34 Correct 7 ms 10068 KB Output is correct
35 Correct 6 ms 10028 KB Output is correct
36 Correct 7 ms 10068 KB Output is correct
37 Correct 6 ms 10068 KB Output is correct
38 Correct 7 ms 10196 KB Output is correct
39 Correct 7 ms 10108 KB Output is correct
40 Correct 6 ms 9992 KB Output is correct
41 Correct 6 ms 9940 KB Output is correct
42 Correct 7 ms 11348 KB Output is correct
43 Correct 7 ms 10708 KB Output is correct
44 Correct 9 ms 10452 KB Output is correct
45 Correct 7 ms 10284 KB Output is correct
46 Correct 7 ms 10196 KB Output is correct
47 Correct 9 ms 10148 KB Output is correct
48 Correct 6 ms 9992 KB Output is correct
49 Correct 7 ms 10012 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 9716 KB Output is correct
2 Correct 4 ms 9684 KB Output is correct
3 Correct 5 ms 9684 KB Output is correct
4 Correct 5 ms 9740 KB Output is correct
5 Correct 5 ms 9684 KB Output is correct
6 Correct 5 ms 9684 KB Output is correct
7 Correct 5 ms 9684 KB Output is correct
8 Correct 5 ms 9684 KB Output is correct
9 Correct 5 ms 9728 KB Output is correct
10 Correct 5 ms 9684 KB Output is correct
11 Correct 5 ms 9684 KB Output is correct
12 Correct 5 ms 9684 KB Output is correct
13 Correct 5 ms 9684 KB Output is correct
14 Correct 5 ms 9684 KB Output is correct
15 Correct 5 ms 9684 KB Output is correct
16 Correct 5 ms 9812 KB Output is correct
17 Correct 5 ms 9700 KB Output is correct
18 Correct 5 ms 9708 KB Output is correct
19 Correct 5 ms 9684 KB Output is correct
20 Correct 5 ms 9812 KB Output is correct
21 Correct 5 ms 9812 KB Output is correct
22 Correct 5 ms 9812 KB Output is correct
23 Correct 5 ms 9812 KB Output is correct
24 Correct 5 ms 9684 KB Output is correct
25 Correct 5 ms 9684 KB Output is correct
26 Correct 5 ms 9684 KB Output is correct
27 Correct 5 ms 9684 KB Output is correct
28 Correct 5 ms 9684 KB Output is correct
29 Correct 7 ms 9940 KB Output is correct
30 Correct 6 ms 9940 KB Output is correct
31 Correct 7 ms 9940 KB Output is correct
32 Correct 7 ms 10068 KB Output is correct
33 Correct 7 ms 10012 KB Output is correct
34 Correct 7 ms 10068 KB Output is correct
35 Correct 6 ms 10028 KB Output is correct
36 Correct 7 ms 10068 KB Output is correct
37 Correct 6 ms 10068 KB Output is correct
38 Correct 7 ms 10196 KB Output is correct
39 Correct 7 ms 10108 KB Output is correct
40 Correct 6 ms 9992 KB Output is correct
41 Correct 6 ms 9940 KB Output is correct
42 Correct 7 ms 11348 KB Output is correct
43 Correct 7 ms 10708 KB Output is correct
44 Correct 9 ms 10452 KB Output is correct
45 Correct 7 ms 10284 KB Output is correct
46 Correct 7 ms 10196 KB Output is correct
47 Correct 9 ms 10148 KB Output is correct
48 Correct 6 ms 9992 KB Output is correct
49 Correct 7 ms 10012 KB Output is correct
50 Correct 308 ms 37512 KB Output is correct
51 Correct 314 ms 37480 KB Output is correct
52 Correct 303 ms 37580 KB Output is correct
53 Correct 306 ms 37576 KB Output is correct
54 Correct 305 ms 37508 KB Output is correct
55 Correct 312 ms 38216 KB Output is correct
56 Correct 274 ms 36560 KB Output is correct
57 Correct 321 ms 38280 KB Output is correct
58 Correct 272 ms 36388 KB Output is correct
59 Correct 303 ms 38324 KB Output is correct
60 Correct 263 ms 36420 KB Output is correct
61 Correct 312 ms 58720 KB Output is correct
62 Correct 314 ms 50804 KB Output is correct
63 Correct 297 ms 42524 KB Output is correct
64 Correct 297 ms 34668 KB Output is correct
65 Correct 441 ms 180212 KB Output is correct
66 Correct 420 ms 108104 KB Output is correct
67 Correct 349 ms 78288 KB Output is correct
68 Correct 398 ms 73160 KB Output is correct
69 Correct 344 ms 54844 KB Output is correct
70 Correct 326 ms 51008 KB Output is correct
71 Correct 204 ms 35532 KB Output is correct
72 Correct 212 ms 34120 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 9836 KB Output is correct
2 Correct 5 ms 9812 KB Output is correct
3 Correct 7 ms 9732 KB Output is correct
4 Correct 5 ms 9812 KB Output is correct
5 Correct 5 ms 9812 KB Output is correct
6 Correct 7 ms 9812 KB Output is correct
7 Correct 4 ms 9684 KB Output is correct
8 Correct 4 ms 9728 KB Output is correct
9 Correct 7 ms 9812 KB Output is correct
10 Correct 7 ms 9812 KB Output is correct
11 Correct 5 ms 9812 KB Output is correct
12 Correct 5 ms 9812 KB Output is correct
13 Correct 5 ms 9812 KB Output is correct
14 Correct 7 ms 9812 KB Output is correct
15 Correct 5 ms 9812 KB Output is correct
16 Correct 6 ms 9780 KB Output is correct
17 Correct 5 ms 9812 KB Output is correct
18 Correct 6 ms 9708 KB Output is correct
19 Correct 5 ms 9812 KB Output is correct
20 Correct 5 ms 9816 KB Output is correct
21 Correct 5 ms 9812 KB Output is correct
22 Correct 5 ms 9812 KB Output is correct
23 Correct 5 ms 9812 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 9836 KB Output is correct
2 Correct 5 ms 9812 KB Output is correct
3 Correct 7 ms 9732 KB Output is correct
4 Correct 5 ms 9812 KB Output is correct
5 Correct 5 ms 9812 KB Output is correct
6 Correct 7 ms 9812 KB Output is correct
7 Correct 4 ms 9684 KB Output is correct
8 Correct 4 ms 9728 KB Output is correct
9 Correct 7 ms 9812 KB Output is correct
10 Correct 7 ms 9812 KB Output is correct
11 Correct 5 ms 9812 KB Output is correct
12 Correct 5 ms 9812 KB Output is correct
13 Correct 5 ms 9812 KB Output is correct
14 Correct 7 ms 9812 KB Output is correct
15 Correct 5 ms 9812 KB Output is correct
16 Correct 6 ms 9780 KB Output is correct
17 Correct 5 ms 9812 KB Output is correct
18 Correct 6 ms 9708 KB Output is correct
19 Correct 5 ms 9812 KB Output is correct
20 Correct 5 ms 9816 KB Output is correct
21 Correct 5 ms 9812 KB Output is correct
22 Correct 5 ms 9812 KB Output is correct
23 Correct 5 ms 9812 KB Output is correct
24 Correct 121 ms 19904 KB Output is correct
25 Correct 100 ms 19940 KB Output is correct
26 Correct 106 ms 19904 KB Output is correct
27 Correct 115 ms 19924 KB Output is correct
28 Correct 127 ms 19920 KB Output is correct
29 Correct 122 ms 19804 KB Output is correct
30 Correct 102 ms 20440 KB Output is correct
31 Correct 137 ms 19704 KB Output is correct
32 Correct 130 ms 20580 KB Output is correct
33 Correct 115 ms 19784 KB Output is correct
34 Correct 101 ms 20672 KB Output is correct
35 Correct 96 ms 20508 KB Output is correct
36 Correct 114 ms 20116 KB Output is correct
37 Correct 119 ms 19812 KB Output is correct
38 Correct 98 ms 20672 KB Output is correct
39 Correct 135 ms 29120 KB Output is correct
40 Correct 133 ms 24384 KB Output is correct
41 Correct 126 ms 22996 KB Output is correct
42 Correct 109 ms 22000 KB Output is correct
43 Correct 125 ms 20784 KB Output is correct
44 Correct 121 ms 20608 KB Output is correct
45 Correct 82 ms 19648 KB Output is correct
46 Correct 81 ms 19744 KB Output is correct