-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.cpp
255 lines (225 loc) · 7.56 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
/* Internal Qaz++ Definition */
/***
~ External definition as a library would be: #include "qaz_kosu_kosu.h" ~
Qaz++ is a programming language based on C++ that allows
Kazakh-speaking programmers to write code in their native language.
Version: Qaz++ v1.0
License: MIT;
Author: Silvermete0r, 2023;
Github: https://github.com/silvermete0r/QazKosuKosu.git
***/
/*--- Start ---*/
/*--- Don't touch & edit! ---*/
/* Include the necessary libraries */
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
/* Main keywords settings using macros definitions */
/** general keywords **/
#define елбасы int main
#define қолдану using
#define кеңістік namespace
#define стандартты_кіріспе std
#define шығыс std::cout
#define кіріс std::cin
#define қайтару return
#define егер if
#define болмаса else
/** conditional and cyclic keywords **/
#define істеу do
#define болғанша while
#define үшін for
#define тоқтау break
#define жалғастыру continue
#define қосқыш switch
#define жағдай case
#define әдепкі default
/** constants definition **/
#define сәтті_күн good
#define сәтсіз_күн fail
#define ақиқат true
#define жалған false
#define белгісіздік nullptr
#define дым NULL
#define EXP 1e9
#define MOD 1e7
#define PI 3.1415926535897932384626433832795
#define ірі_сан INT_MAX
#define кіші_сан INT_MIN
/** structural keywords & functions definition **/
#define өшіру delete
#define жаңа new
#define жаңа_жол endl
#define кездейсоқ random
#define тұрақты const
#define дәреже pow
#define жуықтау round
#define модуль abs
#define түбір sqrt
#define ұзындығы size
#define лақтыру throw
#define ерекшелік exception
#define дос friend
#define бару goto
#define үлгі template
#define түраты typename
#define жеке private
#define халықаралық public
#define мемлекеттік protected
#define сызық_бойында inline
#define статикалық static
#define таңбасыз unsigned
#define тырысу try
#define ұстау catch
#define ашу open
#define жабу close
#define өзің_шеш auto
#define сырттай_өзгерту static_cast
#define шың peek
#define ауыстыру std::swap
#define төңкеру std::reverse
#define сұрыптау std::sort
#define іздеу find
#define алу get
#define қатар_алу getline
#define жоласты substr
#define жолға to_string
#define санға stoi
#define сынып class
#define құрылыс struct
#define санақ enum
/** data structures definition **/
#define сұрыпталмаған_жинақ unordered_set
#define сұрыпталмаған_карта unordered_map
#define вектор vector
#define вектор_сан vector<int>
#define вектор_сан_сан vector<int, int>
#define жұп_сан pair<int, int>
#define жұп_ұзын pair<long long, long long>
#define карта_сан map<int, int>
#define жинақ_сан set<int>
#define жинақ_таңба set<char>
#define артқа_қосу push_back
#define артқа_орналастыру emplace_back
#define жұптау make_pair
#define басы begin
#define аяғы end
#define барлығы(x) (x).begin(), (x).end()
/** file operations definition **/
#define ФайлШығысКіріс freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
#define файл_аяқтау eof
#define шығыс_кіріспе ostream
#define кіріс_кіріспе istream
#define файл_оқу ifstream
#define файл_жазу ofstream
#define файл_оқу_жазу fstream
/** data types definition **/
қолдану сан = int;
қолдану бөлшек_сан = double;
қолдану үтір_сан = float;
қолдану таңба = char;
қолдану жол = стандартты_кіріспе::string;
қолдану ештеңе = void;
қолдану қысқа = short;
қолдану ұзын = long;
қолдану өте_ұзын = long long;
қолдану тексеріс = bool;
/** useful functions definition **/
өте_ұзын кішісі(өте_ұзын x, өте_ұзын y) {
егер(x < y) қайтару x;
қайтару y;
}
өте_ұзын үлкені(өте_ұзын x, өте_ұзын y) {
егер(x > y) қайтару x;
қайтару y;
}
өте_ұзын ең_үлкен_ортақ_бөлгіш(өте_ұзын x, өте_ұзын y) {
егер(y == 0) қайтару x;
қайтару ең_үлкен_ортақ_бөлгіш(y, x % y);
}
өте_ұзын ең_кіші_ортақ_еселік(өте_ұзын x, өте_ұзын y) {
қайтару x / ең_үлкен_ортақ_бөлгіш(x, y) * y;
}
жол үлкенге(жол x) {
үшін(сан i = 0; i < (сан)x.ұзындығы(); ++i) {
егер(x[i] >= 'a' && x[i] <= 'z') x[i] -= 'a' - 'A';
}
қайтару x;
}
жол кішіге(жол x) {
үшін(сан i = 0; i < (сан)x.ұзындығы(); ++i) {
егер(x[i] >= 'A' && x[i] <= 'Z') x[i] += 'a' - 'A';
}
қайтару x;
}
тексеріс жәй_сан(өте_ұзын x) {
егер(x == 1) қайтару 0;
үшін(сан i = 2; i <= жуықтау(түбір(x)); ++i) {
егер(x % i == 0) қайтару 0;
}
қайтару 1;
}
үлгі<түраты T>
ештеңе тез_сұрыптау(стандартты_кіріспе::вектор<T>& arr, сан l, сан r) {
егер(l < r) {
T pivot = arr[(l + r) / 2];
сан i = l;
сан j = r;
болғанша(i <= j) {
болғанша(arr[i] < pivot) {
i++;
}
болғанша(arr[j] > pivot) {
j--;
}
егер(i <= j) {
ауыстыру(arr[i], arr[j]);
i++;
j--;
}
}
егер(l < j) {
тез_сұрыптау(arr, l, j);
}
егер(i < r) {
тез_сұрыптау(arr, i, r);
}
}
}
үлгі<түраты T>
ештеңе тез_сұрыптау(стандартты_кіріспе::вектор<T>& arr) {
тез_сұрыптау(arr, 0, arr.ұзындығы() - 1);
}
өте_ұзын бинарлы_дәреже(өте_ұзын a, өте_ұзын n) {
егер(!n) { қайтару 1; }
егер(n & 1) { қайтару бинарлы_дәреже(a, n - 1)* a; }
болмаса{
өте_ұзын b = бинарлы_дәреже(a, n / 2);
қайтару b* b;
}
}
ештеңе иә() { шығыс << "ИӘ\n"; }
ештеңе жоқ() { шығыс << "ЖОҚ\n"; }
/*--- Don't touch & edit! ---*/
/*--- End ---*/
/* Sample Qaz++ Code */
қолдану кеңістік стандартты_кіріспе;
елбасы() {
// Кодты мында енгізіңіз
// Тез cұрыптау функциясының қолданылу мысалы
вектор_сан v = { 9, 7, 2, 3, 700, 0, -91, 91, 10, -5 };
тез_сұрыптау(v);
төңкеру(барлығы(v));
үшін(сан i = 0; i < v.ұзындығы(); i++) {
шығыс << v[i] << " ";
}
шығыс << жаңа_жол;
// Бинарлы дәрежеге шығару мысалы
сан x = 127;
сан y = 25;
шығыс << бинарлы_дәреже(x, y) << жаңа_жол;
қайтару 0;
}