Skip to content

Commit 066a934

Browse files
committed
Add problems from CF
1 parent 0a4f47c commit 066a934

File tree

3 files changed

+115
-1
lines changed

3 files changed

+115
-1
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
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+
}

codeforces/data.db

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -917,4 +917,6 @@
917917
24104437
918918
24355490
919919
24355390
920-
24357000
920+
24357000
921+
24126930
922+
24132337

0 commit comments

Comments
 (0)