Commit eb0b70f675068e2b9e5ce9cad96bb084408e9851
1 parent
2530116e38
Exists in
main
Updating the directory SearchingSortingandBasicDataStructures .
Showing 5 changed files with 231 additions and 0 deletions Side-by-side Diff
- SearchingSortingandBasicDataStructures/Deque/Problem1/TicketCounter.cpp
- SearchingSortingandBasicDataStructures/Queue/GeeksforGeeks.cpp
- SearchingSortingandBasicDataStructures/Stack/Problem1/ValidString.cpp
- SearchingSortingandBasicDataStructures/Stack/Problem2/ContestScore.cpp
- SearchingSortingandBasicDataStructures/Stack/Problem3/GeekAndBooks.cpp
SearchingSortingandBasicDataStructures/Deque/Problem1/TicketCounter.cpp
View file @
eb0b70f
1 | +// | |
2 | +// Created by ronal on 2/11/2023. | |
3 | +// Problem description link. | |
4 | +// https://practice.geeksforgeeks.org/problems/ticket-counter/0 | |
5 | + | |
6 | +#include <bits/stdc++.h> | |
7 | +using namespace std; | |
8 | + | |
9 | +int TicketCounter(deque<int> &Deque, int K){ | |
10 | + | |
11 | + while(Deque.size() != 1){ | |
12 | + for(int i = 0; i < K; i++){ | |
13 | + if(Deque.size() == 1){ | |
14 | + break; | |
15 | + }else{ | |
16 | + Deque.pop_front(); | |
17 | + } | |
18 | + } | |
19 | + | |
20 | + for(int j = 0; j < K; j++){ | |
21 | + if(Deque.size() == 1){ | |
22 | + break; | |
23 | + }else{ | |
24 | + Deque.pop_back(); | |
25 | + } | |
26 | + } | |
27 | + } | |
28 | + return Deque.front(); | |
29 | +} | |
30 | + | |
31 | +int main() { | |
32 | + int tests, N, K; | |
33 | + deque<int> Deque; | |
34 | + | |
35 | + cin >> tests; | |
36 | + for(int i = 0; i < tests; i++){ | |
37 | + cin >> N >> K; | |
38 | + for(int j = 1; j <= N; j++){ | |
39 | + Deque.push_back(j); | |
40 | + } | |
41 | + cout << TicketCounter(Deque, K) << "\n"; | |
42 | + Deque.clear(); | |
43 | + } | |
44 | + return 0; | |
45 | +} |
SearchingSortingandBasicDataStructures/Queue/GeeksforGeeks.cpp
View file @
eb0b70f
1 | +// | |
2 | +// Created by ronal on 2/11/2023. | |
3 | +// Problem Description Link. | |
4 | +// https://practice.geeksforgeeks.org/problems/geeksforgeeks/0 | |
5 | + | |
6 | +#include <bits/stdc++.h> | |
7 | +using namespace std; | |
8 | + | |
9 | +int GeeksForGeeks(queue<int> &q){ | |
10 | + int aux; | |
11 | + | |
12 | + if(q.size() == 1){ | |
13 | + return q.front(); | |
14 | + | |
15 | + }else{ | |
16 | + while(!q.empty()){ | |
17 | + aux = q.front(); | |
18 | + q.pop(); | |
19 | + q.push(aux); | |
20 | + q.pop(); | |
21 | + | |
22 | + if(q.size() == 1){ | |
23 | + break; | |
24 | + } | |
25 | + } | |
26 | + } | |
27 | + return q.front(); | |
28 | +} | |
29 | + | |
30 | +int main() { | |
31 | + queue<int> q; | |
32 | + int tests; | |
33 | + int size; | |
34 | + | |
35 | + cin >> tests; | |
36 | + for(int i = 0; i < tests; i++){ | |
37 | + cin >> size; | |
38 | + for(int j = 1; j <= size; j++){ | |
39 | + q.push(j); | |
40 | + } | |
41 | + cout << GeeksForGeeks(q) << "\n"; | |
42 | + q.pop(); | |
43 | + } | |
44 | + return 0; | |
45 | +} |
SearchingSortingandBasicDataStructures/Stack/Problem1/ValidString.cpp
View file @
eb0b70f
1 | +// | |
2 | +// Created by ronal on 2/11/2023. | |
3 | +// Problem Description Link. | |
4 | +// https://practice.geeksforgeeks.org/problems/valid-string/0 | |
5 | + | |
6 | +#include <bits/stdc++.h> | |
7 | +using namespace std; | |
8 | + | |
9 | +string isValid(string s){ | |
10 | + stack<char> stak; | |
11 | + char c; | |
12 | + | |
13 | + for(int i = 0; i < s.size(); i++){ | |
14 | + if(s[i] == '0'){ | |
15 | + stak.push(s[i]); | |
16 | + continue; | |
17 | + }else if(stak.empty()){ | |
18 | + return "no\n"; | |
19 | + }else if(s[i] == '1'){ | |
20 | + stak.pop(); | |
21 | + } | |
22 | + } | |
23 | + | |
24 | + if(stak.empty()){ | |
25 | + return "yes\n"; | |
26 | + }else{ | |
27 | + return "no\n"; | |
28 | + } | |
29 | + | |
30 | +} | |
31 | + | |
32 | +int main() { | |
33 | + int tests, size; | |
34 | + string s; | |
35 | + | |
36 | + cin >> tests; | |
37 | + for(int i = 0; i < tests; i++){ | |
38 | + cin >> size; | |
39 | + cin.ignore(); | |
40 | + getline(cin, s); | |
41 | + cout << isValid(s); | |
42 | + } | |
43 | + return 0; | |
44 | +} |
SearchingSortingandBasicDataStructures/Stack/Problem2/ContestScore.cpp
View file @
eb0b70f
1 | +// | |
2 | +// Created by ronal on 2/11/2023. | |
3 | +// Problem description Link. | |
4 | +// https://practice.geeksforgeeks.org/problems/contest-score/0 | |
5 | + | |
6 | + | |
7 | +#include <bits/stdc++.h> | |
8 | +using namespace std; | |
9 | + | |
10 | +void ContestScore(vector<long long> &v, stack<long long> &stak){ | |
11 | + vector<long long >::reverse_iterator rit; | |
12 | + long long aux; | |
13 | + bool value; | |
14 | + for(rit = v.rbegin(); rit != v.rend(); rit++){ | |
15 | + stak.push(*rit); | |
16 | + } | |
17 | + | |
18 | + int j = 0; | |
19 | + while(!stak.empty()){ | |
20 | + aux = stak.top(); | |
21 | + stak.pop(); | |
22 | + value = false; | |
23 | + for(int i = j; i < v.size(); i++){ | |
24 | + if(aux > v[i]){ | |
25 | + cout << i + 1 << " "; | |
26 | + value = true; | |
27 | + break; | |
28 | + }else{ | |
29 | + continue; | |
30 | + } | |
31 | + } | |
32 | + j++; | |
33 | + if(!value){ | |
34 | + cout << "-1 "; | |
35 | + } | |
36 | + } | |
37 | + | |
38 | +} | |
39 | + | |
40 | +int main() { | |
41 | + int tests, size; | |
42 | + vector<long long> v; | |
43 | + stack<long long> stak; | |
44 | + long long value; | |
45 | + | |
46 | + cin >> tests; | |
47 | + for(int i = 0; i < tests; i++){ | |
48 | + cin >> size; | |
49 | + for(int j = 0; j < size; j++){ | |
50 | + cin >> value; | |
51 | + v.push_back(value); | |
52 | + } | |
53 | + ContestScore(v, stak); | |
54 | + cout << "\n"; | |
55 | + v.clear(); | |
56 | + | |
57 | + } | |
58 | + return 0; | |
59 | +} |
SearchingSortingandBasicDataStructures/Stack/Problem3/GeekAndBooks.cpp
View file @
eb0b70f
1 | +// | |
2 | +// Created by ronal on 2/11/2023. | |
3 | +// Problem Description Link. | |
4 | +// https://practice.geeksforgeeks.org/problems/geek-and-books/0 | |
5 | + | |
6 | +#include <bits/stdc++.h> | |
7 | +using namespace std; | |
8 | + | |
9 | +int main() { | |
10 | + stack<int> Stak; | |
11 | + int tests, size, value; | |
12 | + string type; | |
13 | + | |
14 | + cin >> tests; | |
15 | + for(int i = 0; i < tests; i++){ | |
16 | + cin >> size; | |
17 | + for(int j = 0; j < size; j++){ | |
18 | + cin >> type; | |
19 | + if(type.compare("place") == 0){ | |
20 | + cin >> value; | |
21 | + Stak.push(value); | |
22 | + }else{ | |
23 | + if(Stak.empty()){ | |
24 | + cout << "-1 "; | |
25 | + }else{ | |
26 | + cout << Stak.top() << " "; | |
27 | + Stak.pop(); | |
28 | + } | |
29 | + } | |
30 | + } | |
31 | + | |
32 | + while(!Stak.empty()){ | |
33 | + Stak.pop(); | |
34 | + } | |
35 | + cout << "\n"; | |
36 | + } | |
37 | + return 0; | |
38 | +} |