Skip to content

Commit f9fab4e

Browse files
committed
Educational Codeforces Round 58 ABC
1 parent 7ec26c6 commit f9fab4e

File tree

4 files changed

+305
-0
lines changed

4 files changed

+305
-0
lines changed

1101A. Minimum Integer.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#include <cstdio>
2+
#include <iostream>
3+
#include <cstring>
4+
#include <cmath>
5+
#include <ctime>
6+
#include <vector>
7+
#include <string>
8+
#include <algorithm>
9+
#include <map>
10+
#include <set>
11+
#include <unordered_map>
12+
#include <unordered_set>
13+
#include <queue>
14+
#include <deque>
15+
#include <stack>
16+
#include <numeric>
17+
#include <memory>
18+
#include <list>
19+
#include <climits>
20+
#include <fstream>
21+
#include <sstream>
22+
#include <random>
23+
#include <functional>
24+
25+
#define PB push_back
26+
#define F first
27+
#define S second
28+
29+
#define REP(i,from,to) for(auto i=(from); i<=(to); ++i)
30+
#define PER(i,from,to) for(auto i=(from); i>=(to); --i)
31+
#define REP_IF(i,from,to,assert) for(auto i=(from); i<=(to); ++i) if (assert)
32+
33+
#define FOR(i,less_than) for (auto i=0; i<(less_than); ++i)
34+
#define FORI(i, container) for (auto i=0; i<(container).size(); ++i)
35+
#define FORI_IF(i, container, assert) for (auto i=0; i<(container).size(); ++i) if (assert)
36+
#define ROFI(i, container) for (auto i=SZ(container)-1; i>=0; --i)
37+
38+
#define FOREACH(elem, container) for (auto elem : (container))
39+
#define MEMSET(container, value) memset(container, value, sizeof(container))
40+
#define FILL(container, value) fill(container.begin(), container.end(), value)
41+
#define FILL0(container) fill(container.begin(), container.end(), 0)
42+
#define ALL(container) (container).begin(), (container).end()
43+
#define SZ(container) (int)((container).size())
44+
45+
#define BACK(set_map) *prev((set_map).end(), 1)
46+
#define FRONT(set_map) *(set_map).begin()
47+
48+
using PII = std::pair<int,int>;
49+
using LL = long long;
50+
using VI = std::vector<int>;
51+
using VLL = std::vector<LL>;
52+
using VVI = std::vector<VI>;
53+
using VVLL = std::vector<VLL>;
54+
55+
using namespace std;
56+
57+
int main() {
58+
int t;
59+
LL l, r, d;
60+
cin >> t;
61+
while (t--) {
62+
cin >> l >> r >> d;
63+
if (d<l)
64+
cout << d << endl;
65+
else {
66+
cout << d*(r/d+1) << endl;
67+
}
68+
}
69+
return 0;
70+
}

1101B. Accordion.cpp

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#include <cstdio>
2+
#include <iostream>
3+
#include <cstring>
4+
#include <cmath>
5+
#include <ctime>
6+
#include <vector>
7+
#include <string>
8+
#include <algorithm>
9+
#include <map>
10+
#include <set>
11+
#include <unordered_map>
12+
#include <unordered_set>
13+
#include <queue>
14+
#include <deque>
15+
#include <stack>
16+
#include <numeric>
17+
#include <memory>
18+
#include <list>
19+
#include <climits>
20+
#include <fstream>
21+
#include <sstream>
22+
#include <random>
23+
#include <functional>
24+
25+
#define PB push_back
26+
#define F first
27+
#define S second
28+
29+
#define REP(i,from,to) for(auto i=(from); i<=(to); ++i)
30+
#define PER(i,from,to) for(auto i=(from); i>=(to); --i)
31+
#define REP_IF(i,from,to,assert) for(auto i=(from); i<=(to); ++i) if (assert)
32+
33+
#define FOR(i,less_than) for (auto i=0; i<(less_than); ++i)
34+
#define FORI(i, container) for (auto i=0; i<(container).size(); ++i)
35+
#define FORI_IF(i, container, assert) for (auto i=0; i<(container).size(); ++i) if (assert)
36+
#define ROFI(i, container) for (auto i=SZ(container)-1; i>=0; --i)
37+
38+
#define FOREACH(elem, container) for (auto elem : (container))
39+
#define MEMSET(container, value) memset(container, value, sizeof(container))
40+
#define FILL(container, value) fill(container.begin(), container.end(), value)
41+
#define FILL0(container) fill(container.begin(), container.end(), 0)
42+
#define ALL(container) (container).begin(), (container).end()
43+
#define SZ(container) (int)((container).size())
44+
45+
#define BACK(set_map) *prev((set_map).end(), 1)
46+
#define FRONT(set_map) *(set_map).begin()
47+
48+
using PII = std::pair<int,int>;
49+
using LL = long long;
50+
using VI = std::vector<int>;
51+
using VLL = std::vector<LL>;
52+
using VVI = std::vector<VI>;
53+
using VVLL = std::vector<VLL>;
54+
55+
using namespace std;
56+
57+
int main() {
58+
string s;
59+
cin >> s;
60+
61+
int l=0, r=s.size()-1;
62+
while (l < r && !(s[l]=='[' && s[r]==']')) {
63+
if (s[l] != '[') ++l;
64+
if (s[r] != ']') --r;
65+
}
66+
67+
if (++l >= --r) {
68+
cout << -1 << endl;
69+
return 0;
70+
}
71+
72+
while (l < r && !(s[l]==':' && s[r]==':')) {
73+
if (s[l] != ':') ++l;
74+
if (s[r] != ':') --r;
75+
}
76+
77+
if (l >= r) {
78+
cout << -1 << endl;
79+
return 0;
80+
}
81+
82+
int cnt = count(s.begin()+l, s.begin()+r, '|');
83+
cout << cnt+4 << endl;
84+
85+
return 0;
86+
}

1101C. Division and Union.cpp

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#include <cstdio>
2+
#include <iostream>
3+
#include <cstring>
4+
#include <cmath>
5+
#include <ctime>
6+
#include <vector>
7+
#include <string>
8+
#include <algorithm>
9+
#include <map>
10+
#include <set>
11+
#include <unordered_map>
12+
#include <unordered_set>
13+
#include <queue>
14+
#include <deque>
15+
#include <stack>
16+
#include <numeric>
17+
#include <memory>
18+
#include <list>
19+
#include <climits>
20+
#include <fstream>
21+
#include <sstream>
22+
#include <random>
23+
#include <functional>
24+
25+
#define PB push_back
26+
#define F first
27+
#define S second
28+
29+
#define REP(i,from,to) for(auto i=(from); i<=(to); ++i)
30+
#define PER(i,from,to) for(auto i=(from); i>=(to); --i)
31+
#define REP_IF(i,from,to,assert) for(auto i=(from); i<=(to); ++i) if (assert)
32+
33+
#define FOR(i,less_than) for (auto i=0; i<(less_than); ++i)
34+
#define FORI(i, container) for (auto i=0; i<(container).size(); ++i)
35+
#define FORI_IF(i, container, assert) for (auto i=0; i<(container).size(); ++i) if (assert)
36+
#define ROFI(i, container) for (auto i=SZ(container)-1; i>=0; --i)
37+
38+
#define FOREACH(elem, container) for (auto elem : (container))
39+
#define MEMSET(container, value) memset(container, value, sizeof(container))
40+
#define FILL(container, value) fill(container.begin(), container.end(), value)
41+
#define FILL0(container) fill(container.begin(), container.end(), 0)
42+
#define ALL(container) (container).begin(), (container).end()
43+
#define SZ(container) (int)((container).size())
44+
45+
#define BACK(set_map) *prev((set_map).end(), 1)
46+
#define FRONT(set_map) *(set_map).begin()
47+
48+
using PII = std::pair<int,int>;
49+
using LL = long long;
50+
using VI = std::vector<int>;
51+
using VLL = std::vector<LL>;
52+
using VVI = std::vector<VI>;
53+
using VVLL = std::vector<VLL>;
54+
55+
using namespace std;
56+
57+
int main() {
58+
int t, n, r;
59+
cin >> t;
60+
while (t--) {
61+
cin >> n;
62+
vector<vector<int>> a;
63+
vector<int> g(n);
64+
65+
for (int l,r,i=0; i<n; ++i) {
66+
cin >> l >> r;
67+
a.push_back({l, r, i});
68+
}
69+
70+
sort(ALL(a), [](const vector<int>& a, const vector<int>& b) {
71+
return a[0] < b[0];
72+
});
73+
74+
r = a[0][1];
75+
bool found = false;
76+
for (int i=0; i<n; ++i)
77+
if (a[i][0]>r) {
78+
for (int j=i; j<n; ++j) g[a[j][2]] = 2;
79+
found = true;
80+
break;
81+
} else {
82+
r = max(r, a[i][1]);
83+
g[a[i][2]] = 1;
84+
}
85+
if (!found)
86+
cout << -1;
87+
else
88+
for (int i=0; i<n; ++i)
89+
cout << g[i] << ' ';
90+
cout << endl;
91+
92+
}
93+
return 0;
94+
}

stdc++.h

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#include <cstdio>
2+
#include <iostream>
3+
#include <cstring>
4+
#include <cmath>
5+
#include <ctime>
6+
#include <vector>
7+
#include <string>
8+
#include <algorithm>
9+
#include <map>
10+
#include <set>
11+
#include <unordered_map>
12+
#include <unordered_set>
13+
#include <queue>
14+
#include <deque>
15+
#include <stack>
16+
#include <numeric>
17+
#include <memory>
18+
#include <list>
19+
#include <climits>
20+
#include <fstream>
21+
#include <sstream>
22+
#include <random>
23+
#include <functional>
24+
25+
#define PB push_back
26+
#define F first
27+
#define S second
28+
29+
#define REP(i,from,to) for(auto i=(from); i<=(to); ++i)
30+
#define PER(i,from,to) for(auto i=(from); i>=(to); --i)
31+
#define REP_IF(i,from,to,assert) for(auto i=(from); i<=(to); ++i) if (assert)
32+
33+
#define FOR(i,less_than) for (auto i=0; i<(less_than); ++i)
34+
#define FORI(i, container) for (auto i=0; i<(container).size(); ++i)
35+
#define FORI_IF(i, container, assert) for (auto i=0; i<(container).size(); ++i) if (assert)
36+
#define ROFI(i, container) for (auto i=SZ(container)-1; i>=0; --i)
37+
38+
#define FOREACH(elem, container) for (auto elem : (container))
39+
#define MEMSET(container, value) memset(container, value, sizeof(container))
40+
#define FILL(container, value) fill(container.begin(), container.end(), value)
41+
#define FILL0(container) fill(container.begin(), container.end(), 0)
42+
#define ALL(container) (container).begin(), (container).end()
43+
#define SZ(container) (int)((container).size())
44+
45+
#define BACK(set_map) *prev((set_map).end(), 1)
46+
#define FRONT(set_map) *(set_map).begin()
47+
48+
using PII = std::pair<int,int>;
49+
using LL = long long;
50+
using VI = std::vector<int>;
51+
using VLL = std::vector<LL>;
52+
using VVI = std::vector<VI>;
53+
using VVLL = std::vector<VLL>;
54+
55+
using namespace std;

0 commit comments

Comments
 (0)