File tree Expand file tree Collapse file tree 3 files changed +115
-1
lines changed
Educational Codeforces Round 17 Expand file tree Collapse file tree 3 files changed +115
-1
lines changed Original file line number Diff line number Diff line change
1
+ // http://codeforces.com/contest/762/problem/A
2
+
3
+ #include < bits/stdc++.h>
4
+ using namespace std ;
5
+
6
+ #define endl ' \n '
7
+ #define D (x ) cout << #x << " = " << (x) << endl;
8
+
9
+ long long solve (long long n, long long k) {
10
+ if (k == 1 ) return 1 ;
11
+
12
+ vector<long long > divs;
13
+ divs.push_back (1 );
14
+
15
+ int kk = 1 ;
16
+ long long lim = sqrt (n);
17
+ for (long long i = 2 ; i <= lim; ++i) {
18
+ if (n % i == 0 ) {
19
+ divs.push_back (i);
20
+ if (i != n / i) {
21
+ divs.push_back (n / i);
22
+ }
23
+
24
+ }
25
+ }
26
+ divs.push_back (n);
27
+ sort (divs.begin (), divs.end ());
28
+
29
+ if (k - 1 >= divs.size ()) return -1 ;
30
+ return divs[k - 1 ];
31
+ }
32
+
33
+ int main () {
34
+ long long n, k;
35
+ cin >> n >> k;
36
+
37
+ if (n == 1 ) {
38
+ if (k > 1 ) cout << -1 << endl;
39
+ else cout << 1 << endl;
40
+ return 0 ;
41
+ }
42
+
43
+ long long ans = solve (n, k);
44
+ cout << ans << endl;
45
+ return 0 ;
46
+ }
Original file line number Diff line number Diff line change
1
+ // http://codeforces.com/contest/762/problem/B
2
+
3
+ #include < bits/stdc++.h>
4
+ using namespace std ;
5
+
6
+ #define endl ' \n '
7
+ #define D (x ) cout << #x << " = " << (x) << endl;
8
+
9
+ int main () {
10
+ int a, b, c;
11
+ cin >> a >> b >> c;
12
+
13
+ int m;
14
+ cin >> m;
15
+
16
+ vector<int > usb, ps2;
17
+ while (m --> 0 ) {
18
+ int p;
19
+ string t;
20
+
21
+ cin >> p >> t;
22
+ if (t == " USB" ) usb.push_back (p);
23
+ else ps2.push_back (p);
24
+ }
25
+
26
+ sort (usb.begin (), usb.end ());
27
+ sort (ps2.begin (), ps2.end ());
28
+
29
+ reverse (usb.begin (), usb.end ());
30
+ reverse (ps2.begin (), ps2.end ());
31
+
32
+ int tot = 0 ;
33
+ long long price = 0 ;
34
+
35
+ while (usb.size () > 0 && a > 0 ) {
36
+ int cur = usb.back ();
37
+ usb.pop_back ();
38
+ price += cur;
39
+ tot ++;
40
+ a --;
41
+ }
42
+
43
+ while (ps2.size () > 0 && b > 0 ) {
44
+ int cur = ps2.back ();
45
+ ps2.pop_back ();
46
+ price += cur;
47
+ tot ++;
48
+ b --;
49
+ }
50
+
51
+ usb.insert (usb.end (), ps2.begin (), ps2.end ());
52
+ sort (usb.begin (), usb.end ());
53
+ reverse (usb.begin (), usb.end ());
54
+
55
+ while (usb.size () > 0 && c > 0 ) {
56
+ int cur = usb.back ();
57
+ usb.pop_back ();
58
+ price += cur;
59
+ tot ++;
60
+ c --;
61
+ }
62
+
63
+ cout << tot << " " << price << endl;
64
+
65
+ return 0 ;
66
+ }
Original file line number Diff line number Diff line change 917
917
24104437
918
918
24355490
919
919
24355390
920
- 24357000
920
+ 24357000
921
+ 24126930
922
+ 24132337
You can’t perform that action at this time.
0 commit comments