Skip to content

Commit 29f64a3

Browse files
committed
AtCoder & CodeForces practice.
1 parent c248617 commit 29f64a3

14 files changed

+594
-1
lines changed

Diff for: AtCoder/A_Tomorrow.cpp

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
int main() {
8+
int M, D;
9+
cin >> M >> D;
10+
int Y, M1, D1;
11+
cin >> Y >> M1 >> D1;
12+
D1++;
13+
if (D1 == D + 1) {
14+
M1++;
15+
D1 = 1;
16+
}
17+
if (M1 == M + 1) {
18+
Y++;
19+
M1 = 1;
20+
}
21+
cout << Y << " " << M1 << " " << D1 << endl;
22+
return 0;
23+
}

Diff for: AtCoder/B_Buy_One_Carton_of_Milk.cpp

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
int main() {
8+
int N, S, M, L;
9+
cin >> N >> S >> M >> L;
10+
ll ans = LLONG_MAX;
11+
for (int i = 0; i <= 100; i++) {
12+
for (int j = 0; j <= 100; j++) {
13+
for (int k = 0; k <= 100; k++) {
14+
ll eggs = (ll)i * 6 + (ll)j * 8 + (ll)k * 12;
15+
if (eggs >= N) {
16+
ll cost = (ll)i * S + (ll)j * M + (ll)k * L;
17+
ans = min(ans, cost);
18+
}
19+
}
20+
}
21+
}
22+
cout << ans << endl;
23+
return 0;
24+
}

Diff for: AtCoder/C_Sum_of_Numbers_Greater_Than_Me.cpp

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
int main() {
8+
int N;
9+
cin >> N;
10+
vector<int> A(N);
11+
for (int i = 0; i < N; i++) {
12+
cin >> A[i];
13+
}
14+
vector<ll> ans(N);
15+
vector<pair<int, int>> B(N);
16+
for (int i = 0; i < N; i++) {
17+
B[i] = { A[i], i };
18+
}
19+
sort(B.rbegin(), B.rend());
20+
ll sum = 0;
21+
ll running_sum = 0;
22+
ll running_sum_value = B.back().first;
23+
for (int i = 0; i < N; i++) {
24+
if (B[i].first != running_sum_value) {
25+
sum += running_sum;
26+
running_sum_value = B[i].first;
27+
running_sum = B[i].first;
28+
} else {
29+
running_sum += B[i].first;
30+
}
31+
32+
ans[B[i].second] = sum;
33+
}
34+
for (int i = 0; i < N; i++) cout << ans[i] << " ";
35+
cout << endl;
36+
return 0;
37+
}

Diff for: AtCoder/E_Set_Meal.cpp

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
int main() {
8+
int N, M, L;
9+
cin >> N >> M >> L;
10+
vector<int> A(N), B(M);
11+
for (int i = 0; i < N; i++) cin >> A[i];
12+
for (int j = 0; j < M; j++) cin >> B[j];
13+
// sort B in decreasing order
14+
vector<pair<int, int>> BD(M);
15+
for (int i = 0; i < M; i++) BD[i] = { B[i], i };
16+
sort(BD.rbegin(), BD.rend());
17+
vector<int> MB(M);
18+
for (int i = 0; i < M; i++) MB[BD[i].second] = i;
19+
vector<vector<int>> P(N);
20+
for (int i = 0; i < L; i++) {
21+
int main, side;
22+
cin >> main >> side;
23+
side = MB[side - 1];
24+
P[main - 1].push_back(side);
25+
}
26+
ll ans = 0;
27+
for (int i = 0; i < N; i++) {
28+
int best = 0;
29+
sort(P[i].begin(), P[i].end());
30+
for (auto side: P[i]) {
31+
if (side == best) best++;
32+
else break;
33+
}
34+
if (best < M) ans = max(ans, (ll)BD[best].first + A[i]);
35+
}
36+
cout << ans << endl;
37+
return 0;
38+
}

Diff for: CodeForces/A_Halloumi_Boxes.cpp

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
void testCase() {
8+
int N, K;
9+
cin >> N >> K;
10+
vector<int> A(N);
11+
for (int i = 0; i < N; i++) {
12+
cin >> A[i];
13+
}
14+
if (is_sorted(A.begin(), A.end())) {
15+
cout << "YES" << endl;
16+
return;
17+
}
18+
cout << (K > 1 ? "YES" : "NO") << endl;
19+
}
20+
21+
int main() {
22+
int t;
23+
cin >> t;
24+
25+
while (t--) {
26+
testCase();
27+
}
28+
29+
cout << flush;
30+
return 0;
31+
}

Diff for: CodeForces/A_Rook.cpp

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
void testCase() {
8+
string S;
9+
cin >> S;
10+
for (int i = 1; i <= 8; i++) {
11+
string nS = S;
12+
nS[1] = '0' + i;
13+
if (nS != S) cout << nS << endl;
14+
}
15+
for (int i = 0; i <= 7; i++) {
16+
string nS = S;
17+
nS[0] = 'a' + i;
18+
if (nS != S) cout << nS << endl;
19+
}
20+
}
21+
22+
int main() {
23+
int t;
24+
cin >> t;
25+
26+
while (t--) {
27+
testCase();
28+
}
29+
30+
cout << flush;
31+
return 0;
32+
}

Diff for: CodeForces/B_StORage_room.cpp

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
void testCase() {
8+
int N;
9+
cin >> N;
10+
vector<vector<int>> A(N, vector<int>(N, 0));
11+
for (int i = 0; i < N; i++) {
12+
for (int j = 0; j < N; j++) {
13+
cin >> A[i][j];
14+
}
15+
}
16+
vector<int> ans(N, (1 << 30) - 1);
17+
for (int i = 0; i < N; i++) {
18+
for (int j = 0; j < N; j++) {
19+
if (i == j) continue;
20+
ans[i] &= A[i][j];
21+
ans[j] &= A[i][j];
22+
}
23+
}
24+
bool ok = true;
25+
for (int i = 0; i < N; i++) {
26+
for (int j = 0; j < N; j++) {
27+
if (i == j) continue;
28+
ok &= (A[i][j] == (ans[i] | ans[j]));
29+
}
30+
}
31+
if (!ok) {
32+
cout << "NO" << endl;
33+
return;
34+
}
35+
cout << "YES" << endl;
36+
for (int i = 0; i < N; i++) {
37+
cout << ans[i] << " ";
38+
}
39+
cout << endl;
40+
}
41+
42+
int main() {
43+
int t;
44+
cin >> t;
45+
46+
while (t--) {
47+
testCase();
48+
}
49+
50+
cout << flush;
51+
return 0;
52+
}

Diff for: CodeForces/B_YetnotherrokenKeoard.cpp

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
void testCase() {
8+
string S;
9+
cin >> S;
10+
vector<pair<char, int>> lower, upper;
11+
for (int i = 0; i < S.size(); i++) {
12+
if (S[i] == 'b') {
13+
if (!lower.empty()) lower.pop_back();
14+
} else if (S[i] == 'B') {
15+
if (!upper.empty()) upper.pop_back();
16+
} else {
17+
if (S[i] >= 'A' && S[i] <= 'Z') upper.push_back({ S[i], i });
18+
else lower.push_back({ S[i], i });
19+
}
20+
}
21+
string ans = "";
22+
int p1 = 0, p2 = 0;
23+
while (p1 < lower.size() || p2 < upper.size()) {
24+
if (p1 < lower.size() && p2 < upper.size()) {
25+
if (lower[p1].second < upper[p2].second) {
26+
ans += lower[p1].first;
27+
p1++;
28+
} else {
29+
ans += upper[p2].first;
30+
p2++;
31+
}
32+
} else if (p1 < lower.size()) {
33+
ans += lower[p1].first;
34+
p1++;
35+
} else {
36+
ans += upper[p2].first;
37+
p2++;
38+
}
39+
}
40+
cout << ans << endl;
41+
}
42+
43+
int main() {
44+
int t;
45+
cin >> t;
46+
47+
while (t--) {
48+
testCase();
49+
}
50+
51+
cout << flush;
52+
return 0;
53+
}

Diff for: CodeForces/C_Removal_of_Unattractive_Pairs.cpp

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include <bits/stdc++.h>
2+
#define ll long long
3+
#define endl '\n'
4+
5+
using namespace std;
6+
7+
void testCase() {
8+
int N;
9+
cin >> N;
10+
string S;
11+
cin >> S;
12+
vector<int> frq(26);
13+
for (int i = 0; i < N; i++) frq[S[i] - 'a']++;
14+
for (int i = 0; i < N; i++) {
15+
// find the smallest frq
16+
int sm = -1;
17+
for (int j = 0; j < 26; j++) {
18+
if (frq[j] == 0) continue;
19+
if (sm == -1 || frq[j] < frq[sm]) {
20+
sm = j;
21+
}
22+
}
23+
if (sm == -1) break;
24+
int bg = -1;
25+
for (int j = 0; j < 26; j++) {
26+
if (frq[j] == 0) continue;
27+
if (bg == -1 || (bg == sm && frq[j] >= frq[bg]) || frq[j] > frq[bg]) {
28+
bg = j;
29+
}
30+
}
31+
if (sm != bg) {
32+
frq[sm]--;
33+
frq[bg]--;
34+
}
35+
}
36+
int sum = 0;
37+
for (int i = 0; i < 26; i++) sum += frq[i];
38+
cout << sum << endl;
39+
}
40+
41+
int main() {
42+
int t;
43+
cin >> t;
44+
45+
while (t--) {
46+
testCase();
47+
}
48+
49+
cout << flush;
50+
return 0;
51+
}

0 commit comments

Comments
 (0)