File tree Expand file tree Collapse file tree 3 files changed +176
-0
lines changed
2022/Contests/Educational Rounds/Educational Round 127/Programs Expand file tree Collapse file tree 3 files changed +176
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include <iostream>
2
+ #include <vector>
3
+ #include <algorithm>
4
+
5
+ using namespace std;
6
+
7
+ int is_possible(vector <int> &A, int n)
8
+ {
9
+ for(int i = 1, current = n; i < A.size(); i++, current++)
10
+ {
11
+ if(abs(A[i] - current) > 1)
12
+ {
13
+ return false;
14
+ }
15
+ }
16
+
17
+ return true;
18
+ }
19
+
20
+ void solve()
21
+ {
22
+ int no_of_elements;
23
+ cin >> no_of_elements;
24
+
25
+ vector <int> A(no_of_elements + 1);
26
+ for(int i = 1; i <= no_of_elements; i++)
27
+ {
28
+ cin >> A[i];
29
+ }
30
+
31
+ int possible = false;
32
+ for(int beginning = A[1] - 1; beginning <= A[1] + 1; beginning++)
33
+ {
34
+ if(is_possible(A, beginning))
35
+ {
36
+ possible = true;
37
+ }
38
+ }
39
+
40
+ cout << (possible ? "Yes" : "No") << "\n";
41
+ }
42
+
43
+ int main()
44
+ {
45
+ int no_of_test_cases;
46
+ cin >> no_of_test_cases;
47
+
48
+ while(no_of_test_cases--)
49
+ solve();
50
+
51
+ return 0;
52
+ }
Original file line number Diff line number Diff line change
1
+ #include <iostream>
2
+ #include <vector>
3
+ #include <algorithm>
4
+
5
+ using namespace std;
6
+
7
+ void solve()
8
+ {
9
+ int no_of_elements, budget;
10
+ cin >> no_of_elements >> budget;
11
+
12
+ vector <int> A(no_of_elements + 1);
13
+ for(int i = 1; i <= no_of_elements; i++)
14
+ {
15
+ cin >> A[i];
16
+ }
17
+
18
+ sort(A.begin(), A.end());
19
+
20
+ vector <long long> prefix_sum(no_of_elements + 1);
21
+ for(int i = 1; i <= no_of_elements; i++)
22
+ {
23
+ prefix_sum[i] = prefix_sum[i - 1] + A[i];
24
+ }
25
+
26
+ vector <int> no_of_days_used(no_of_elements + 2, 0);
27
+ for(int i = 1; i <= no_of_elements; i++)
28
+ {
29
+ if(prefix_sum[i] > budget)
30
+ {
31
+ break;
32
+ }
33
+
34
+ long long low = 1, high = 1e9 + 1;
35
+ while(high - low > 1)
36
+ {
37
+ long long mid = (low + high)/2;
38
+
39
+ if(( prefix_sum[i] + (mid - 1)*i ) > budget)
40
+ {
41
+ high = mid;
42
+ }
43
+ else
44
+ {
45
+ low = mid;
46
+ }
47
+ }
48
+
49
+ no_of_days_used[i] = low;
50
+
51
+ //cout << "i = " << i << " Days = " << no_of_days_used[i] << "\n";
52
+ }
53
+
54
+ long long answer = 0;
55
+ for(int i = 1; i <= no_of_elements; i++)
56
+ {
57
+ answer += (no_of_days_used[i] - no_of_days_used[i + 1])*i;
58
+ }
59
+
60
+ cout << answer << "\n";
61
+ }
62
+
63
+ int main()
64
+ {
65
+ int no_of_test_cases;
66
+ cin >> no_of_test_cases;
67
+
68
+ while(no_of_test_cases--)
69
+ solve();
70
+
71
+ return 0;
72
+ }
73
+
Original file line number Diff line number Diff line change
1
+ #include <iostream>
2
+
3
+ using namespace std;
4
+
5
+ void solve()
6
+ {
7
+ string S;
8
+ cin >> S;
9
+
10
+ int possible = (S.size() == 1 ? false : true);
11
+ for(int i = 0; i < S.size(); i++)
12
+ {
13
+ if(i == 0)
14
+ {
15
+ if(S[i] != S[i + 1])
16
+ {
17
+ possible = false;
18
+ }
19
+ continue;
20
+ }
21
+
22
+ if(i + 1 == S.size())
23
+ {
24
+ if(S[i] != S[i - 1])
25
+ {
26
+ possible = false;
27
+ }
28
+
29
+ break;
30
+ }
31
+
32
+ if(S[i - 1] != S[i] && S[i] != S[i + 1])
33
+ {
34
+ possible = false;
35
+ break;
36
+ }
37
+ }
38
+
39
+ cout << (possible ? "YES" : "NO") << "\n";
40
+ }
41
+
42
+ int main()
43
+ {
44
+ int no_of_test_cases;
45
+ cin >> no_of_test_cases;
46
+
47
+ while(no_of_test_cases--)
48
+ solve();
49
+
50
+ return 0;
51
+ }
You can’t perform that action at this time.
0 commit comments