# ALGI Exordium: Editorial [**Exordium**](https://codeforces.com/contestInvitation/7ed15875b6ee8cac2dd8aef7713b1b41cc9a7401) là **Tuyển tập 25 Bài Code Nhập môn** (chọn lọc từ sách **300 bài code thiếu nhi**) do [**The Algitect** (ALGI Project)](https://www.facebook.com/algitect.project) sinh test chấm nhằm hỗ trợ các bạn học sinh mới học lập trình nắm chắc cách sử dụng ngôn ngữ lập trình (đặc biệt là ở bậc THCS). [toc] ## Phân loại: Tính toán cơ bản - Câu điều kiện - Vòng lặp ### Problem [01] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main(){ long long a, b; cin >> a >> b; cout << a + b << '\n'; cout << a - b << '\n'; cout << b - a << '\n'; cout << a * b; return 0; } ``` ::: ### Problem [02] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main() { int a, b, c, t; cin >> a >> b >> c; if (a < b) { t = a; a = b; b = t; } if (a < c) { t = a; a = c; c = t; } if (b < c) { t = b; b = c; c = t; } cout << c << ' ' << b << ' ' << a; return 0; } ``` ::: ### Problem [03] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main(){ long long a, b; cin >> a >> b; cout << (-b) / a; return 0; } ``` ::: ### Problem [04] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main(){ long long hour; cin >> hour; long long week = 24*7, day = 24; cout << hour / week << " "; hour %= week; cout << hour / day << " "; hour %= day; cout << hour << " "; return 0; } ``` ::: ### Problem [05] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main() { long long d, m, y, top; cin >> d >> m >> y; if (m < 1 || m > 12) { cout << "Khong hop le"; return 0; } if (m == 4 || m == 6 || m == 9 || m == 11) { top = 30; } else if (m == 2) { top = 28; if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) { top++; } } else { top = 31; } if (d < 1 || d > top) { cout << "Khong hop le"; return 0; } cout << "Hop le"; return 0; } ``` ::: ### Problem [06] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main() { int h, m, s, timer; cin >> h >> m >> s; timer = 3600 * h + 60 * m + s; cin >> h >> m >> s; timer -= 3600 * h + 60 * m + s; if (timer < 0) timer = -timer; cout << timer / 3600 << " "; cout << (timer % 3600) / 60 << " "; cout << (timer % 3600) % 60; return 0; } ``` ::: ### Problem [07] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int count = 0; long long sum = 0; for (int i = 1; i <= n; i++) { if (n % i == 0) { cout << i << " "; count++; sum += i; } } cout << count << "\n" << sum; return 0; } ``` ::: ### Problem [08] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main() { long long n, t; long long u, sum = 0, count = 0; cin >> n; t = n; do { count++; u = t % 10; sum += u; } while (t /= 10); do { t = t * 10 + n % 10; } while (n /= 10); cout << count << "\n"; cout << n % 10 << "\n"; cout << u << "\n"; cout << sum << "\n"; cout << t; return 0; } ``` ::: ### Problem [09] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main() { long long a, b; cin >> a >> b; cout << __gcd(a, b) << "\n"; cout << a / __gcd(a, b) * b; return 0; } ``` ::: ### Problem [10] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main() { double xA, yA, xB, yB; cin >> xA >> yA >> xB >> yB; double res = sqrt((xB - xA) * (xB - xA) + (yB - yA) * (yB - yA)); cout << fixed << setprecision(4) << res; return 0; } ``` ::: ## Phân loại: Tính toán nâng cao - Mảng một chiều ### Problem [11] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int n, res; bool check(int x) { for (int j = 2; j < x; j++) { if (x % j==0) { return false; } } return true; } int main() { cin >> n; for (int i = 2; ; i++){ if (check(i)) { cout << i << " "; res++; } if (res == n) break; } return 0; } ``` ::: ### Problem [12] :::success ```cpp = 1 ``` ::: ### Problem [13] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int n, res; int main() { cin >> n; for (int a = 1; a <= n; a++) { for (int b = a+1; b <= n; b++) { for (int c = b+1; c <= n; c++) { if (a*a + b*b == c*c) { res++; } } } } cout << res; return 0; } ``` ::: ### Problem [14] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; if (n % 2 != 0) { cout << ((1 + n) * ((n + 1) / 2)) / 2; } else { cout << ((2 +n ) * (n / 2)) / 2; } return 0; } ``` ::: ### Problem [15] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; const int N = 1e6; int n, m, q, res; int A[N+5]; int main() { cin >> n >> q; for (int i = 1; i <= n; i++) { cin>>A[i]; } for (int i = 1; i <= q; i++) { int id, x; cin >> id >> x; A[id] = x; } for (int i = 1; i <= n; i++) { cout << A[i] << " "; } return 0; } ``` ::: ### Problem [16] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; const int N = 1e6; int n, m, q, k; double res, ans; int A[N+5]; int main() { cin >> n >> k; for (int i = 1; i <= n; i++) { cin >> A[i]; res += A[i]; } for (int i = 1; i <= k; i++) { int x; cin >> x; ans += A[x]; } cout << fixed << setprecision(5) << (res / n) << "\n"; cout << fixed << setprecision(5) << (ans / k); return 0; } ``` ::: ### Problem [17] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; const int N = 1e6; int n, m, q, k; int A[N*2+5]; int main() { cin >> n >> k; for (int i = 1; i <= n; i++) { cin >> A[i]; A[i+n] = A[i]; } k %= n; for (int i = 1+k; i <= k+n; i++) { cout << A[i] << " "; } cout << "\n"; for(int i= n-k+1; i <= n-k+n; i++) { cout << A[i] << " "; } return 0; } ``` ::: ### Problem [18] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; const int N = 1e6; int n, m, q, k, sl1, gt1, sl2 = INT_MAX, gt2; long double res, ans; int A[N+5], D[N+5]; int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> A[i]; D[A[i]]++; } for (int i = 1; i <= n; i++) { int x = A[i]; if (D[x] > sl1){ sl1 = D[x]; gt1 = x; } if (D[x] == sl1) { gt1 = max(gt1,x); } if (D[x] < sl2) { sl2 = D[x]; gt2 = x; } if (D[x]==sl2) { gt2 = min(gt2,x); } } cout << gt1 << " " << sl1 << "\n"; cout << gt2 << " " << sl2; return 0; } ``` ::: ### Problem [19] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; const int N = 5e6; int n; bool check[N+5]; int main() { cin >> n; for (int i = 2; i*i <= n; i++) { if (check[i] == false) { for (int j = i*i; j<=n; j+=i) { check[j] = true; } } } for (int i = 2; i <= n; i++) { if (check[i] == false) { cout << i << " "; } } return 0; } ``` ::: ### Problem [20] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; const int N = 1e6; const long long M = 1e9 + 7; int n; long long F[N+1]; int main() { F[1] = 1; F[2] = 1; cin >> n; for (int i = 3; i <= n; i++) { F[i] = (F[i-1] + F[i-2]) % M; } cout << F[n]; return 0; } ``` ::: ## Phân loại: Khác ### Problem [21] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; const int N = 1e5; int n, k, A[N+1]; int main() { cin >> n >> k; for (int i = 1; i <= n; i++) { cin >> A[i]; } sort(A+1, A+1+n); cout << A[k] << " " << A[n-k+1]; return 0; } ``` ::: ### Problem [22] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; const int N = 1e3; int n, m, q, A[N+1][N+1]; int main() { cin >> n >> m; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> A[i][j]; } } cin >> q; while (q--) { int i, j, x; cin >> i >> j >> x; A[i][j] = x; } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cout << A[i][j] << " "; } cout << "\n"; } return 0; } ``` ::: ### Problem [23] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; string s; char k; int main() { cin >> s >> k; for (int i = 0; i < s.size(); i++) { if (s[i] == k) { cout << (i+1) << " "; } } return 0; } ``` ::: ### Problem [24] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; string s; int main() { cin >> s; for (int i = 0; i < s.size()/2; i++) { if (s[i] != s[s.size() - i - 1]) { cout << "No"; return 0; } } cout << "Yes"; return 0; } ``` ::: ### Problem [25] :::success ```cpp = 1 #include <bits/stdc++.h> using namespace std; int n; void solve(int n, char s, char t, char mid) { if (n == 1) { cout << 1 << " " << s << " " << t << "\n"; return; } solve(n - 1, s, mid, t); cout << n << " " << s << " " << t << "\n"; solve(n - 1, mid, t, s); } int main() { cin >> n; solve(n, 'A', 'C', 'B'); return 0; } ``` :::