Submission #823495

# Submission time Handle Problem Language Result Execution time Memory
823495 2023-08-12T15:16:58 Z NK_ Toys (CEOI18_toy) C++17
100 / 100
2946 ms 79404 KB
// Success consists of going from failure to failure without loss of enthusiasm
#include <bits/stdc++.h>

using namespace std;

#define nl '\n'
#define pb push_back
#define sz(x) int(x.size())

template<class T> using V = vector<T>;
using vi = V<int>;

int main() {
	cin.tie(0)->sync_with_stdio(0);
	
	int N; cin >> N;
	if (N == 1) {
		cout << 1 << nl;
		cout << 0 << nl;
		return 0;
	}

	vi D; unordered_map<int, int> I;
	for(int i = 1; i * i <= N; i++) {
		if (N % i == 0) {
			D.pb(i); 
			if (i*i != N) D.pb(N / i);
		}
	}

	int M = sz(D);
	sort(begin(D), end(D)); for(int i = 0; i < M; i++) I[D[i]] = i;

	V<unordered_set<int>> ans(M);

	function<void(int)> dnc = [&](int x) {
		int i = I[x];
		if (sz(ans[i])) return;

		ans[i] = {x - 1};
		for(int y = 2; y * y <= x; y++) {
			if (x % y == 0) {
				dnc(y); dnc(x / y);
				int ai = I[y], bi = I[x / y];

				// cout << "MERGE " << x << endl;
				// cout << y << " " << sz(ans[ai]) << endl;
				// cout << x / y << " " << sz(ans[bi]) << endl;
				// cout << endl;

				for(auto& a : ans[ai]) {
					for(auto& b : ans[bi]) {
						// cout << "-> " << a << " " << b << endl;
						ans[i].insert(a + b);
					}
				}
			}
		}

		// sort(begin(ans[i]), end(ans[i]));
		// ans[i].erase(unique(begin(ans[i]), end(ans[i])), end(ans[i]));
	};

	dnc(N);

	vi ANS(begin(ans.back()), end(ans.back()));
	sort(begin(ANS), end(ANS));
	cout << sz(ANS) << nl;
	for(auto& x : ANS) cout << x << " ";
	cout << nl;

    return 0;
}			
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 316 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 1 ms 316 KB Output is correct
24 Correct 1 ms 212 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 316 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 1 ms 316 KB Output is correct
24 Correct 1 ms 212 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
29 Correct 1 ms 340 KB Output is correct
30 Correct 0 ms 340 KB Output is correct
31 Correct 1 ms 340 KB Output is correct
32 Correct 1 ms 340 KB Output is correct
33 Correct 1 ms 340 KB Output is correct
34 Correct 1 ms 212 KB Output is correct
35 Correct 0 ms 316 KB Output is correct
36 Correct 0 ms 212 KB Output is correct
37 Correct 1 ms 340 KB Output is correct
38 Correct 0 ms 212 KB Output is correct
39 Correct 0 ms 212 KB Output is correct
40 Correct 1 ms 340 KB Output is correct
41 Correct 1 ms 212 KB Output is correct
42 Correct 0 ms 212 KB Output is correct
43 Correct 0 ms 212 KB Output is correct
44 Correct 0 ms 212 KB Output is correct
45 Correct 0 ms 340 KB Output is correct
46 Correct 0 ms 320 KB Output is correct
47 Correct 1 ms 340 KB Output is correct
48 Correct 1 ms 212 KB Output is correct
49 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 316 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 1 ms 316 KB Output is correct
24 Correct 1 ms 212 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
29 Correct 1 ms 340 KB Output is correct
30 Correct 0 ms 340 KB Output is correct
31 Correct 1 ms 340 KB Output is correct
32 Correct 1 ms 340 KB Output is correct
33 Correct 1 ms 340 KB Output is correct
34 Correct 1 ms 212 KB Output is correct
35 Correct 0 ms 316 KB Output is correct
36 Correct 0 ms 212 KB Output is correct
37 Correct 1 ms 340 KB Output is correct
38 Correct 0 ms 212 KB Output is correct
39 Correct 0 ms 212 KB Output is correct
40 Correct 1 ms 340 KB Output is correct
41 Correct 1 ms 212 KB Output is correct
42 Correct 0 ms 212 KB Output is correct
43 Correct 0 ms 212 KB Output is correct
44 Correct 0 ms 212 KB Output is correct
45 Correct 0 ms 340 KB Output is correct
46 Correct 0 ms 320 KB Output is correct
47 Correct 1 ms 340 KB Output is correct
48 Correct 1 ms 212 KB Output is correct
49 Correct 0 ms 212 KB Output is correct
50 Correct 2 ms 596 KB Output is correct
51 Correct 1 ms 468 KB Output is correct
52 Correct 1 ms 452 KB Output is correct
53 Correct 1 ms 444 KB Output is correct
54 Correct 1 ms 448 KB Output is correct
55 Correct 2 ms 596 KB Output is correct
56 Correct 2 ms 596 KB Output is correct
57 Correct 2 ms 576 KB Output is correct
58 Correct 0 ms 212 KB Output is correct
59 Correct 1 ms 212 KB Output is correct
60 Correct 1 ms 340 KB Output is correct
61 Correct 1 ms 468 KB Output is correct
62 Correct 1 ms 340 KB Output is correct
63 Correct 1 ms 340 KB Output is correct
64 Correct 0 ms 212 KB Output is correct
65 Correct 1 ms 468 KB Output is correct
66 Correct 0 ms 212 KB Output is correct
67 Correct 0 ms 212 KB Output is correct
68 Correct 0 ms 212 KB Output is correct
69 Correct 1 ms 340 KB Output is correct
70 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 316 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 1 ms 316 KB Output is correct
24 Correct 1 ms 212 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
29 Correct 1 ms 340 KB Output is correct
30 Correct 0 ms 340 KB Output is correct
31 Correct 1 ms 340 KB Output is correct
32 Correct 1 ms 340 KB Output is correct
33 Correct 1 ms 340 KB Output is correct
34 Correct 1 ms 212 KB Output is correct
35 Correct 0 ms 316 KB Output is correct
36 Correct 0 ms 212 KB Output is correct
37 Correct 1 ms 340 KB Output is correct
38 Correct 0 ms 212 KB Output is correct
39 Correct 0 ms 212 KB Output is correct
40 Correct 1 ms 340 KB Output is correct
41 Correct 1 ms 212 KB Output is correct
42 Correct 0 ms 212 KB Output is correct
43 Correct 0 ms 212 KB Output is correct
44 Correct 0 ms 212 KB Output is correct
45 Correct 0 ms 340 KB Output is correct
46 Correct 0 ms 320 KB Output is correct
47 Correct 1 ms 340 KB Output is correct
48 Correct 1 ms 212 KB Output is correct
49 Correct 0 ms 212 KB Output is correct
50 Correct 2 ms 596 KB Output is correct
51 Correct 1 ms 468 KB Output is correct
52 Correct 1 ms 452 KB Output is correct
53 Correct 1 ms 444 KB Output is correct
54 Correct 1 ms 448 KB Output is correct
55 Correct 2 ms 596 KB Output is correct
56 Correct 2 ms 596 KB Output is correct
57 Correct 2 ms 576 KB Output is correct
58 Correct 0 ms 212 KB Output is correct
59 Correct 1 ms 212 KB Output is correct
60 Correct 1 ms 340 KB Output is correct
61 Correct 1 ms 468 KB Output is correct
62 Correct 1 ms 340 KB Output is correct
63 Correct 1 ms 340 KB Output is correct
64 Correct 0 ms 212 KB Output is correct
65 Correct 1 ms 468 KB Output is correct
66 Correct 0 ms 212 KB Output is correct
67 Correct 0 ms 212 KB Output is correct
68 Correct 0 ms 212 KB Output is correct
69 Correct 1 ms 340 KB Output is correct
70 Correct 1 ms 340 KB Output is correct
71 Correct 199 ms 17088 KB Output is correct
72 Correct 119 ms 12968 KB Output is correct
73 Correct 250 ms 15124 KB Output is correct
74 Correct 91 ms 10232 KB Output is correct
75 Correct 136 ms 10936 KB Output is correct
76 Correct 417 ms 22880 KB Output is correct
77 Correct 476 ms 20300 KB Output is correct
78 Correct 363 ms 18940 KB Output is correct
79 Correct 393 ms 18564 KB Output is correct
80 Correct 1 ms 212 KB Output is correct
81 Correct 1 ms 212 KB Output is correct
82 Correct 3 ms 596 KB Output is correct
83 Correct 48 ms 3232 KB Output is correct
84 Correct 36 ms 3988 KB Output is correct
85 Correct 9 ms 1356 KB Output is correct
86 Correct 1 ms 284 KB Output is correct
87 Correct 45 ms 4576 KB Output is correct
88 Correct 1 ms 212 KB Output is correct
89 Correct 1 ms 256 KB Output is correct
90 Correct 1 ms 340 KB Output is correct
91 Correct 9 ms 1988 KB Output is correct
92 Correct 33 ms 6044 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 316 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 1 ms 316 KB Output is correct
24 Correct 1 ms 212 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
29 Correct 1 ms 340 KB Output is correct
30 Correct 0 ms 340 KB Output is correct
31 Correct 1 ms 340 KB Output is correct
32 Correct 1 ms 340 KB Output is correct
33 Correct 1 ms 340 KB Output is correct
34 Correct 1 ms 212 KB Output is correct
35 Correct 0 ms 316 KB Output is correct
36 Correct 0 ms 212 KB Output is correct
37 Correct 1 ms 340 KB Output is correct
38 Correct 0 ms 212 KB Output is correct
39 Correct 0 ms 212 KB Output is correct
40 Correct 1 ms 340 KB Output is correct
41 Correct 1 ms 212 KB Output is correct
42 Correct 0 ms 212 KB Output is correct
43 Correct 0 ms 212 KB Output is correct
44 Correct 0 ms 212 KB Output is correct
45 Correct 0 ms 340 KB Output is correct
46 Correct 0 ms 320 KB Output is correct
47 Correct 1 ms 340 KB Output is correct
48 Correct 1 ms 212 KB Output is correct
49 Correct 0 ms 212 KB Output is correct
50 Correct 2 ms 596 KB Output is correct
51 Correct 1 ms 468 KB Output is correct
52 Correct 1 ms 452 KB Output is correct
53 Correct 1 ms 444 KB Output is correct
54 Correct 1 ms 448 KB Output is correct
55 Correct 2 ms 596 KB Output is correct
56 Correct 2 ms 596 KB Output is correct
57 Correct 2 ms 576 KB Output is correct
58 Correct 0 ms 212 KB Output is correct
59 Correct 1 ms 212 KB Output is correct
60 Correct 1 ms 340 KB Output is correct
61 Correct 1 ms 468 KB Output is correct
62 Correct 1 ms 340 KB Output is correct
63 Correct 1 ms 340 KB Output is correct
64 Correct 0 ms 212 KB Output is correct
65 Correct 1 ms 468 KB Output is correct
66 Correct 0 ms 212 KB Output is correct
67 Correct 0 ms 212 KB Output is correct
68 Correct 0 ms 212 KB Output is correct
69 Correct 1 ms 340 KB Output is correct
70 Correct 1 ms 340 KB Output is correct
71 Correct 199 ms 17088 KB Output is correct
72 Correct 119 ms 12968 KB Output is correct
73 Correct 250 ms 15124 KB Output is correct
74 Correct 91 ms 10232 KB Output is correct
75 Correct 136 ms 10936 KB Output is correct
76 Correct 417 ms 22880 KB Output is correct
77 Correct 476 ms 20300 KB Output is correct
78 Correct 363 ms 18940 KB Output is correct
79 Correct 393 ms 18564 KB Output is correct
80 Correct 1 ms 212 KB Output is correct
81 Correct 1 ms 212 KB Output is correct
82 Correct 3 ms 596 KB Output is correct
83 Correct 48 ms 3232 KB Output is correct
84 Correct 36 ms 3988 KB Output is correct
85 Correct 9 ms 1356 KB Output is correct
86 Correct 1 ms 284 KB Output is correct
87 Correct 45 ms 4576 KB Output is correct
88 Correct 1 ms 212 KB Output is correct
89 Correct 1 ms 256 KB Output is correct
90 Correct 1 ms 340 KB Output is correct
91 Correct 9 ms 1988 KB Output is correct
92 Correct 33 ms 6044 KB Output is correct
93 Correct 2013 ms 70664 KB Output is correct
94 Correct 800 ms 47564 KB Output is correct
95 Correct 1101 ms 49924 KB Output is correct
96 Correct 900 ms 44916 KB Output is correct
97 Correct 868 ms 41076 KB Output is correct
98 Correct 2387 ms 78328 KB Output is correct
99 Correct 2798 ms 79404 KB Output is correct
100 Correct 2261 ms 76604 KB Output is correct
101 Correct 2946 ms 70800 KB Output is correct
102 Correct 2391 ms 63684 KB Output is correct
103 Correct 1391 ms 57120 KB Output is correct
104 Correct 1 ms 212 KB Output is correct
105 Correct 1 ms 212 KB Output is correct
106 Correct 8 ms 828 KB Output is correct
107 Correct 241 ms 8716 KB Output is correct
108 Correct 424 ms 18584 KB Output is correct
109 Correct 31 ms 2948 KB Output is correct
110 Correct 1 ms 212 KB Output is correct
111 Correct 203 ms 11080 KB Output is correct
112 Correct 1 ms 212 KB Output is correct
113 Correct 1 ms 316 KB Output is correct
114 Correct 5 ms 852 KB Output is correct
115 Correct 1 ms 212 KB Output is correct
116 Correct 8 ms 1468 KB Output is correct
117 Correct 193 ms 22536 KB Output is correct