Skip to content

Commit 0a7f156

Browse files
committed
good bye 2020 contest CF, problems a, b, c, d
1 parent 373f5dd commit 0a7f156

File tree

4 files changed

+380
-0
lines changed

4 files changed

+380
-0
lines changed

Codeforces/1466A.cpp

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
#include <bits/stdc++.h>
2+
3+
#define FOR(i, b, e, s) for(int i=(b); (s)>0?i<(e):i>(e); i+=(s))
4+
#define FOR1(e) FOR(i, 0, e, 1)
5+
#define FOR2(i, e) FOR(i, 0, e, 1)
6+
#define FOR3(i, b, e) FOR(i, b, e, 1)
7+
#define FOR4(i, b, e, s) FOR(i, b, e, s)
8+
#define GET5(a, b, c, d, e, ...) e
9+
#define FORC(...) GET5(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)
10+
#define range(...) FORC(__VA_ARGS__)(__VA_ARGS__)
11+
#define each(x, a) for (auto& x: a)
12+
13+
#define vk vector
14+
#define st first
15+
#define nd second
16+
#define pb push_back
17+
#define mp make_pair
18+
19+
using namespace std;
20+
21+
template<class T> void read(T& x) {
22+
cin >> x;
23+
}
24+
void read(double& d) {
25+
string t;
26+
read(t);
27+
d=stod(t);
28+
}
29+
void read(long double& d) {
30+
string t;
31+
read(t);
32+
d=stold(t);
33+
}
34+
template<class H, class... T> void read(H& h, T&... t) {
35+
read(h);
36+
read(t...);
37+
}
38+
template<class A> void read(vk<A>& x) {
39+
each(a, x)
40+
read(a);
41+
}
42+
43+
typedef long long ll;
44+
typedef long double ld;
45+
typedef vector<int> vi;
46+
typedef vector<vi> vvi;
47+
typedef pair<int, int> pii;
48+
typedef vector<pii> vii;
49+
50+
const int MX = 1e9+7;
51+
52+
53+
54+
55+
void solve() {
56+
//
57+
int n;
58+
read(n);
59+
60+
vi ar(n);
61+
read(ar);
62+
63+
set <int> s;
64+
range(i, 1, n)
65+
range(j, 0, i)
66+
s.insert(ar[i] - ar[j]);
67+
68+
cout << s.size() << "\n";
69+
70+
}
71+
72+
int main() {
73+
ios::sync_with_stdio(false);
74+
75+
int tests;
76+
read(tests);
77+
78+
range(tests)
79+
solve();
80+
}

Codeforces/1466B.cpp

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#include <bits/stdc++.h>
2+
3+
#define FOR(i, b, e, s) for(int i=(b); (s)>0?i<(e):i>(e); i+=(s))
4+
#define FOR1(e) FOR(i, 0, e, 1)
5+
#define FOR2(i, e) FOR(i, 0, e, 1)
6+
#define FOR3(i, b, e) FOR(i, b, e, 1)
7+
#define FOR4(i, b, e, s) FOR(i, b, e, s)
8+
#define GET5(a, b, c, d, e, ...) e
9+
#define FORC(...) GET5(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)
10+
#define range(...) FORC(__VA_ARGS__)(__VA_ARGS__)
11+
#define each(x, a) for (auto& x: a)
12+
13+
#define vk vector
14+
#define st first
15+
#define nd second
16+
#define pb push_back
17+
#define mp make_pair
18+
19+
using namespace std;
20+
21+
template<class T> void read(T& x) {
22+
cin >> x;
23+
}
24+
void read(double& d) {
25+
string t;
26+
read(t);
27+
d=stod(t);
28+
}
29+
void read(long double& d) {
30+
string t;
31+
read(t);
32+
d=stold(t);
33+
}
34+
template<class H, class... T> void read(H& h, T&... t) {
35+
read(h);
36+
read(t...);
37+
}
38+
template<class A> void read(vk<A>& x) {
39+
each(a, x)
40+
read(a);
41+
}
42+
43+
typedef long long ll;
44+
typedef long double ld;
45+
typedef vector<int> vi;
46+
typedef vector<vi> vvi;
47+
typedef pair<int, int> pii;
48+
typedef vector<pii> vii;
49+
50+
const int MX = 1e9+7;
51+
52+
53+
54+
55+
void solve() {
56+
//
57+
int n;
58+
read(n);
59+
60+
vi ar(n);
61+
read(ar);
62+
63+
int ans = 0;
64+
map<int, int> have;
65+
range(i, n-1, -1, -1) {
66+
int x = ar[i];
67+
if(!have[x + 1]) {
68+
have[x + 1] = 1;
69+
ans++;
70+
} else if(!have[x]) {
71+
have[x] = 1;
72+
ans++;
73+
}
74+
}
75+
76+
cout << ans << "\n";
77+
}
78+
79+
int main() {
80+
ios::sync_with_stdio(false);
81+
82+
int tests;
83+
read(tests);
84+
85+
range(tests)
86+
solve();
87+
}

Codeforces/1466C.cpp

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
#include <bits/stdc++.h>
2+
3+
#define FOR(i, b, e, s) for(int i=(b); (s)>0?i<(e):i>(e); i+=(s))
4+
#define FOR1(e) FOR(i, 0, e, 1)
5+
#define FOR2(i, e) FOR(i, 0, e, 1)
6+
#define FOR3(i, b, e) FOR(i, b, e, 1)
7+
#define FOR4(i, b, e, s) FOR(i, b, e, s)
8+
#define GET5(a, b, c, d, e, ...) e
9+
#define FORC(...) GET5(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)
10+
#define range(...) FORC(__VA_ARGS__)(__VA_ARGS__)
11+
#define each(x, a) for (auto& x: a)
12+
13+
#define vk vector
14+
#define st first
15+
#define nd second
16+
#define pb push_back
17+
#define mp make_pair
18+
19+
using namespace std;
20+
21+
template<class T> void read(T& x) {
22+
cin >> x;
23+
}
24+
void read(double& d) {
25+
string t;
26+
read(t);
27+
d=stod(t);
28+
}
29+
void read(long double& d) {
30+
string t;
31+
read(t);
32+
d=stold(t);
33+
}
34+
template<class H, class... T> void read(H& h, T&... t) {
35+
read(h);
36+
read(t...);
37+
}
38+
template<class A> void read(vk<A>& x) {
39+
each(a, x)
40+
read(a);
41+
}
42+
43+
typedef long long ll;
44+
typedef long double ld;
45+
typedef vector<int> vi;
46+
typedef vector<vi> vvi;
47+
typedef pair<int, int> pii;
48+
typedef vector<pii> vii;
49+
50+
const int MX = 1e9+7;
51+
52+
53+
54+
55+
void solve() {
56+
//
57+
string s;
58+
read(s);
59+
60+
int n = int(s.length());
61+
62+
if(n%3 == 1) {
63+
s += "$";
64+
s += "#";
65+
n += 2;
66+
} else if(n%3 == 2) {
67+
s += "$";
68+
n += 1;
69+
}
70+
71+
int ans = 0;
72+
range(i, 0, n - 2, 1) {
73+
//cout << s[i] << " " << s[i+1] << " " << s[i+2] << "\n";
74+
if(s[i] == s[i+1] && s[i] == s[i+2]) {
75+
ans+=2;
76+
s[i+1] = '%';
77+
s[i+2] = '&';
78+
} else if (s[i] == s[i+1]) {
79+
s[i+1] = '%';
80+
ans++;
81+
} else if (s[i] == s[i+2]) {
82+
s[i+2] = (s[i+1] == '&' ? '%' : '&');
83+
ans++;
84+
} else if (s[i+1] == s[i+2]) {
85+
s[i+2] = (s[i] == '&' ? '%' : '&');
86+
ans++;
87+
}
88+
}
89+
90+
cout << ans << "\n";
91+
}
92+
93+
int main() {
94+
ios::sync_with_stdio(false);
95+
96+
int tests;
97+
read(tests);
98+
99+
range(tests)
100+
solve();
101+
}

Codeforces/1466D.cpp

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
#include <bits/stdc++.h>
2+
3+
#define FOR(i, b, e, s) for(int i=(b); (s)>0?i<(e):i>(e); i+=(s))
4+
#define FOR1(e) FOR(i, 0, e, 1)
5+
#define FOR2(i, e) FOR(i, 0, e, 1)
6+
#define FOR3(i, b, e) FOR(i, b, e, 1)
7+
#define FOR4(i, b, e, s) FOR(i, b, e, s)
8+
#define GET5(a, b, c, d, e, ...) e
9+
#define FORC(...) GET5(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)
10+
#define range(...) FORC(__VA_ARGS__)(__VA_ARGS__)
11+
#define each(x, a) for (auto& x: a)
12+
13+
#define vk vector
14+
#define st first
15+
#define nd second
16+
#define pb push_back
17+
#define mp make_pair
18+
19+
using namespace std;
20+
21+
template<class T> void read(T& x) {
22+
cin >> x;
23+
}
24+
void read(double& d) {
25+
string t;
26+
read(t);
27+
d=stod(t);
28+
}
29+
void read(long double& d) {
30+
string t;
31+
read(t);
32+
d=stold(t);
33+
}
34+
template<class H, class... T> void read(H& h, T&... t) {
35+
read(h);
36+
read(t...);
37+
}
38+
template<class A> void read(vk<A>& x) {
39+
each(a, x)
40+
read(a);
41+
}
42+
43+
typedef long long ll;
44+
typedef long double ld;
45+
typedef vector<int> vi;
46+
typedef vector<vi> vvi;
47+
typedef pair<int, int> pii;
48+
typedef vector<pii> vii;
49+
50+
const int MX = 1e9+7;
51+
52+
53+
54+
55+
void solve() {
56+
//
57+
int n;
58+
read(n);
59+
60+
vi w(n);
61+
ll sum = 0;
62+
vii weights;
63+
range(i, 0, n) {
64+
read(w[i]);
65+
sum += 1ll * w[i];
66+
weights.push_back(make_pair(w[i], i + 1));
67+
}
68+
69+
vii ver(n-1);
70+
map<int, int> counts;
71+
each(uv, ver) {
72+
read(uv.first);
73+
counts[uv.first]++;
74+
75+
read(uv.second);
76+
counts[uv.second]++;
77+
}
78+
79+
sort(weights.begin(), weights.end());
80+
reverse(weights.begin(), weights.end());
81+
82+
int incr = 1;
83+
vk<ll> ans;
84+
ans.push_back(sum);
85+
each(x, weights) {
86+
//cout << x.first << " " << x.second << "\n";
87+
int wcount = counts[x.second];
88+
while(wcount-- > 1) {
89+
incr++;
90+
sum += 1ll * x.first;
91+
ans.push_back(sum);
92+
if(incr == n - 1) {
93+
break;
94+
}
95+
}
96+
}
97+
98+
each(x, ans)
99+
cout << x << " ";
100+
cout << "\n";
101+
102+
}
103+
104+
int main() {
105+
ios::sync_with_stdio(false);
106+
107+
int tests;
108+
read(tests);
109+
110+
range(tests)
111+
solve();
112+
}

0 commit comments

Comments
 (0)