Skip to content

Commit c166ae7

Browse files
All restored
1 parent 15c0fa4 commit c166ae7

File tree

13 files changed

+413
-0
lines changed

13 files changed

+413
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//
2+
// Created by DJ Tape on 15.02.2024.
3+
//
4+
#include <iostream>
5+
6+
size_t find_elem(const int array[], size_t arr_size, int element) {
7+
size_t counter{};
8+
for (size_t i{}; i < arr_size; ++i){
9+
if (array[i] != element)
10+
counter++;
11+
}
12+
return counter;
13+
}
14+
15+
16+
int main() {
17+
size_t arrSize{};
18+
std::cin >> arrSize;
19+
int *array = new int[arrSize], elem{};
20+
for (size_t i{}; i < arrSize; ++i)
21+
std::cin >> array[i];
22+
std::cin >> elem;
23+
std::cout << find_elem(array, arrSize, elem);
24+
delete[] array;
25+
return 0;
26+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
//
2+
// Created by DJ Tape on 15.02.2024.
3+
//
4+
#include <iostream>
5+
6+
void sort_bad_marks(int array[], size_t arr_size) {
7+
for (size_t i{}; i < arr_size; ++i){
8+
if (array[i] == 0) {
9+
size_t amount_of_Zero{ 1 };
10+
for(size_t j = i + 1; j < arr_size; ++j) {
11+
if (array[j] != 0 or j == arr_size - 1)
12+
break;
13+
amount_of_Zero++;
14+
}
15+
for (size_t k = i + amount_of_Zero; k < arr_size; ++k) {
16+
array[k - amount_of_Zero] = array[k];
17+
}
18+
for (size_t l{}; l < amount_of_Zero; ++l) {
19+
array[arr_size - l - 1] = 0;
20+
}
21+
}
22+
}
23+
}
24+
25+
26+
int main() {
27+
size_t arrSize{};
28+
std::cin >> arrSize;
29+
int *array = new int[arrSize];
30+
for (size_t i{}; i < arrSize; ++i)
31+
std::cin >> array[i];
32+
sort_bad_marks(array, arrSize);
33+
for (size_t i{}; i < arrSize; ++i)
34+
std::cout << array[i] << ' ';
35+
delete[] array;
36+
return 0;
37+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
//
2+
// Created by DJ Tape on 15.02.2024.
3+
//
4+
#include <iostream>
5+
6+
void InsertionSort(int arr[], const size_t arrSize) {
7+
for (int i = 1; i < arrSize; ++i) {
8+
int currentElem = arr[i];
9+
int j = i - 1;
10+
while (j >= 0 and arr[j] > currentElem) {
11+
arr[j + 1] = arr[j];
12+
j--;
13+
}
14+
arr[j + 1] = currentElem;
15+
}
16+
}
17+
18+
int main(){
19+
size_t arrSize{};
20+
std::cin >> arrSize;
21+
int* array = new int[arrSize];
22+
for (size_t i{}; i < arrSize; ++i) {
23+
std::cin >> array[i];
24+
}
25+
InsertionSort(array, arrSize);
26+
for (size_t i{}; i < arrSize; ++i) {
27+
std::cout << array[i] << ' ';
28+
}
29+
delete[] array;
30+
return 0;
31+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
//
2+
// Created by DJ Tape on 15.02.2024.
3+
//
4+
#include <iostream>
5+
6+
void Merge(int arr[], size_t begin, size_t mid, size_t end) {
7+
int* helpArr = new int[end + 1];
8+
for (size_t i = begin; i < mid + 1; ++i)
9+
helpArr[i] = arr[i];
10+
for (size_t i = mid + 1; i < end + 1; ++i)
11+
helpArr[i] = arr[i];
12+
size_t i = begin, j = mid + 1, k = begin;
13+
while (i < mid + 1 or j < end + 1) {
14+
if (i < mid + 1 and (helpArr[i] < helpArr[j] or j >= end + 1))
15+
arr[k++] = helpArr[i++];
16+
else
17+
arr[k++] = helpArr[j++];
18+
}
19+
delete[] helpArr;
20+
}
21+
22+
void MergeSort(int arr[], size_t begin, size_t end) {
23+
if (begin >= end)
24+
return;
25+
size_t mid = begin + ((end - begin) / 2);
26+
MergeSort(arr, begin, mid);
27+
MergeSort(arr, mid + 1, end);
28+
Merge(arr, begin, mid, end);
29+
}
30+
31+
32+
int main() {
33+
size_t arrSize{};
34+
std::cin >> arrSize;
35+
int* array = new int[arrSize];
36+
for (size_t i{}; i < arrSize; ++i) {
37+
std::cin >> array[i];
38+
}
39+
MergeSort(array, 0, arrSize - 1);
40+
for (size_t i; i < arrSize; ++i) {
41+
std::cout << array[i] << ' ';
42+
}
43+
delete[] array;
44+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
//
2+
// Created by DJ Tape on 15.02.2024.
3+
//
4+
#include <iostream>
5+
#include <vector>
6+
#include <iomanip>
7+
8+
struct Book {
9+
std::string ISBN{};
10+
std::string title{};
11+
unsigned publicationYear{};
12+
};
13+
14+
void Merge(std::vector<Book>& books, size_t begin, size_t mid, size_t end) {
15+
std::vector<Book> helpArr(end + 1);
16+
for (size_t i = begin; i < mid + 1; ++i)
17+
helpArr[i] = books[i];
18+
for (size_t i = mid + 1; i < end + 1; ++i)
19+
helpArr[i] = books[i];
20+
size_t i = begin, j = mid + 1, k = begin;
21+
while (i < mid + 1 or j < end + 1) {
22+
if (i < mid + 1 and (helpArr[i].publicationYear < helpArr[j].publicationYear or j >= end + 1))
23+
books[k++] = helpArr[i++];
24+
else if (helpArr[i].publicationYear == helpArr[j].publicationYear)
25+
books[k++] = helpArr[i].title < helpArr[j].title ? helpArr[i++] : helpArr[j++];
26+
else
27+
books[k++] = helpArr[j++];
28+
}
29+
}
30+
31+
void MergeSort(std::vector<Book>& books, size_t begin, size_t end) {
32+
if (begin >= end)
33+
return;
34+
size_t mid = begin + ((end - begin) / 2);
35+
MergeSort(books, begin, mid);
36+
MergeSort(books, mid + 1, end);
37+
Merge(books, begin, mid, end);
38+
}
39+
40+
41+
int main() {
42+
size_t amount_of_books{};
43+
std::cin >> amount_of_books;
44+
std::vector<Book> books(amount_of_books);
45+
for (auto& book : books) {
46+
std::cin >> book.ISBN >> std::quoted(book.title) >> book.publicationYear;
47+
}
48+
MergeSort(books, 0, books.size() - 1);
49+
for (const auto& book : books) {
50+
std::cout << book.ISBN << ' ' << std::quoted(book.title) << ' ' << book.publicationYear << std::endl;
51+
}
52+
return 0;
53+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//
2+
// Created by DJ Tape on 15.02.2024.
3+
//
4+
#include <iostream>
5+
6+
7+
int FindLastEvenElem(size_t arrSize = {}) {
8+
/* Дан массив не отсортированных целых чисел. Написать функцию, которая вернет первое с конца четное число.
9+
* При написании кода используйте принцип стека. Если массив не содержит четного числа возвращать -1.*/
10+
11+
int lastEven{ -1 };
12+
for (size_t i{}; i < arrSize; ++i) {
13+
int currentElem{};
14+
std::cin >> currentElem;
15+
if (currentElem % 2 == 0)
16+
lastEven = currentElem;
17+
}
18+
return lastEven;
19+
}
20+
21+
22+
int main() {
23+
size_t arrSize{};
24+
std::cin >> arrSize;
25+
std::cout << FindLastEvenElem(arrSize);
26+
return 0;
27+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
1+
add_executable(1.2.1 1.2.1.cpp)
2+
add_executable(1.2.2 1.2.2.cpp)
3+
add_executable(1.3.1 1.3.1.cpp)
4+
add_executable(1.4.1 1.4.1.cpp)
5+
add_executable(1.4.2 1.4.2.cpp)
6+
add_executable(module1_test module1_test.cpp)
7+
add_executable(2.1.1 2.1.1.cpp)
18
add_executable(2.1.2 2.1.2.cpp)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
//
2+
// Created by DJ Tape on 15.02.2024.
3+
//
4+
#include <iostream>
5+
6+
void MoveEven(int arr[], size_t arrSize) {
7+
size_t nextEvenIndex{};
8+
for (size_t i{}; i < arrSize; ++i) {
9+
if (arr[i] % 2 == 0) {
10+
nextEvenIndex++;
11+
continue;
12+
}
13+
}
14+
for (size_t i{}; i < arrSize; ++i) {
15+
if (arr[i] % 2 == 0)
16+
continue;
17+
for (size_t j = i + 1; j < arrSize; ++j) {
18+
if (arr[j] % 2 == 0) {
19+
std::swap(arr[i], arr[j]);
20+
break;
21+
}
22+
}
23+
}
24+
}
25+
26+
27+
int main() {
28+
size_t arrSize{};
29+
std::cin >> arrSize;
30+
int* array = new int[arrSize];
31+
for (size_t i{}; i < arrSize; ++i) {
32+
std::cin >> array[i];
33+
}
34+
MoveEven(array, arrSize);
35+
for (size_t i{}; i < arrSize; ++i) {
36+
std::cout << array[i] << ' ';
37+
}
38+
delete[] array;
39+
}

Problems/Study AI/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1+
add_executable(meeting_of_friends meeting_of_friends.cpp)
2+
add_executable(string_conversion string_conversion.cpp) #Not Solved yet
3+
add_executable(another_one_game_with_the_string another_one_game_with_the_string.cpp)
4+
add_executable(berland_parliament berland_parliament.cpp)
15
add_executable(party party.cpp)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// https://codeforces.com/contest/1480/problem/A?locale=ru
2+
3+
// Не проходит тесты на Study AI
4+
5+
#include <iostream>
6+
#include <vector>
7+
#include <string>
8+
9+
void StringConversion(std::string &input) {
10+
for (size_t letter{}; letter < input.length(); ++letter){
11+
input[letter] = (!(letter % 2)) ? input[letter] == 'a' ? 'b' : 'a' : input[letter] == 'z' ? 'y' : 'z';
12+
}
13+
}
14+
15+
int main() {
16+
size_t n{};
17+
std::cin >> n;
18+
19+
// std::vector<std::string> inputs(n);
20+
// for(auto& input : inputs) {
21+
// std::cin >> input;
22+
// }
23+
// for(auto& input : inputs){
24+
// StringConversion(input);
25+
// std::cout << input << std::endl;
26+
// }
27+
//
28+
29+
for(size_t i{}; i < n; ++i) {
30+
std::string input{};
31+
std::cin >> input;
32+
StringConversion(input);
33+
std::cout << input << std::endl;
34+
}
35+
return 0;
36+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// https://codeforces.com/contest/644/problem/A?locale=ru
2+
#include <iostream>
3+
4+
void CanSitOut(size_t n, size_t a, size_t b) {
5+
if (n > a * b) {
6+
std::cout << -1;
7+
return;
8+
}
9+
size_t counter = 1;
10+
if (b % 2) {
11+
for (size_t i{}; i < a; ++i) {
12+
for (size_t j{}; j < b; ++j) {
13+
if (counter > n) {
14+
std::cout << 0 << ' ';
15+
} else {
16+
std::cout << counter << ' ';
17+
counter++;
18+
}
19+
}
20+
std::cout << std::endl;
21+
}
22+
}
23+
else {
24+
for (size_t i{}; i < a; ++i) {
25+
if (i % 2) {
26+
for (size_t j{}; j < b; j += 2) {
27+
if (counter > n) {
28+
std::cout << 0 << ' ' << 0 << ' ';
29+
}
30+
else {
31+
std::cout << ((counter + 1 > n) ? 0 : counter + 1) << ' ';
32+
counter++;
33+
std::cout << counter - 1 << ' ';
34+
counter++;
35+
}
36+
}
37+
}
38+
else {
39+
for (size_t j{}; j < b; ++j) {
40+
if (counter > n) {
41+
std::cout << 0 << ' ';
42+
} else {
43+
std::cout << counter << ' ';
44+
counter++;
45+
}
46+
}
47+
}
48+
std::cout << std::endl;
49+
}
50+
}
51+
}
52+
53+
int main() {
54+
size_t n{}, a{}, b{};
55+
std::cin >> n >> a >> b;
56+
CanSitOut(n, a, b);
57+
return 0;
58+
}
59+
60+
/*
61+
void CanSitOut(size_t n, size_t a, size_t b) {
62+
if (a * b < n) {
63+
std::cout << -1;
64+
return;
65+
}
66+
67+
for (size_t i = 0; i < a; ++i) {
68+
for (size_t j = 0; j < b; ++j) {
69+
size_t seatNumber = i * b + (i % 2 == 0 ? j : b - j - 1) + 1;
70+
std::cout << (seatNumber <= n ? seatNumber : 0) << ' ';
71+
}
72+
std::cout << std::endl;
73+
}
74+
}
75+
*/

0 commit comments

Comments
 (0)