# T13 ## Khử trùng ```cpp! #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) using namespace std; string trim(string s) { for(int i = s.size() - 1; i >= 0; --i){ if(s[i] == ' ') s.erase(s.begin() + i); } return s; } int main(){ fast(); unordered_set<string> v; string c; while(getline(cin , c)){ v.insert(trim(c)); } for(string d : v){ cout << d << endl; } return 0; } ``` ## Giải thích ```cpp! #include <iostream> #if 032 == 32 #include <https> #endif int main() { https://hackmd.io/@HMNhat/t13; const int x = 123456789; const int y = 123'456'789; cout << x - y << endl; return 0; } ``` Lí do 1: ```cpp! #if 032 == 32 #include <https> #endif ``` Số 0 trước một số biến nó thành 1 hệ số khác (ko phải decimal) nên điều kiện sai, nhánh ko đc biên dịch, ko lỗi. SỰ THẬT: ```#include <https>``` KO HỀ TỒN TẠI #IF và #ENDIF chỉ lầ macro tiền xử lí. Lí do 2: `https:` đc compiler coi là label dùng trong lệnh `goto label;` `//hackmd.io/@HMNhat/t13;` là comment Lí do 3: `123'456'789`dấu ' dùng để tách số trong C++ => chạy vẫn đc ## Tổng ### 1 ```cpp! #pragma GCC optimize("unroll-loops, O3, avx2") #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) typedef long long ll; using namespace std; int main(){ fast(); int n; cin >> n; ll tong = 0; for(int i=1; i <= n; ++i){ tong += i; } cout << tong << endl; return 0; } ``` ### 2 ```cpp! #pragma GCC optimize("unroll-loops, O3, avx2") #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) typedef long long ll; using namespace std; int main(){ fast(); int n; cin >> n; ll tong = 0; for(int i=1; i <= n; ++i){ tong += (ll)(i * i); } cout << tong << endl; return 0; } ``` ### 3 ```cpp! #pragma GCC optimize("unroll-loops, O3, avx2") #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) typedef long long ll; using namespace std; int main(){ fast(); int n; cin >> n; ll tong = 0; for(int i=1; i <= n; ++i){ tong += (ll)(i * i * i); } cout << tong << endl; return 0; } ``` ### 4 ```cpp! #pragma GCC optimize("unroll-loops, O3, avx2") #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) typedef long long ll; const ll MOD = 1e9 + 7; using namespace std; int main(){ fast(); int n; cin >> n; ll tong = 0; for(int i=1; i <= n; ++i){ tong = (tong + i) % MOD; } cout << tong << endl; return 0; } ``` ### 5 ```cpp! #pragma GCC optimize("unroll-loops, O3, avx2") #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) typedef long long ll; const ll MOD = 1e9 + 7; using namespace std; int main(){ fast(); int n; cin >> n; ll tong = 0; for(int i=1; i <= n; ++i){ tong = (tong + i * i) % MOD; } cout << tong << endl; return 0; } ``` ### 6 ```cpp! #pragma GCC optimize("unroll-loops, O3, avx2") #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) typedef long long ll; const ll MOD = 1e9 + 7; using namespace std; int main(){ fast(); int n; cin >> n; ll tong = 0; for(int i=1; i <= n; ++i){ tong = (tong + i * i * i) % MOD; } cout << tong << endl; return 0; } ``` # Homework (verdict:accepted): ### https://codeforces.com/problemset/problem/456/A ```cpp! #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) using namespace std; int main(){ fast(); int b; cin >>b; vector<pair<int,int>> a(b); for(int c=0; c < b; c++){ cin >> a[c].first; cin >> a[c].second; } sort(a.begin(), a.end()); for(int c=1; c < b; c++){ if(a[c].second < a[c-1].second){ cout << "Happy Alex" << endl; return 0; } } cout << "Poor Alex" << endl; return 0; } ``` ### https://codeforces.com/problemset/problem/478/C ```cpp! #include<bits/stdc++.h> using namespace std; typedef long long ll; signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll a, b,c; cin >> a >> b >>c; cout << min((a + b + c) /3, a+b+c - max({a, b, c})) << endl; return 0; } ``` ### https://codeforces.com/problemset/problem/348/A ```cpp! #include<bits/stdc++.h> using namespace std; typedef long long ll; signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll s =0, m=0; int a; cin >> a; for(int i =0; i < a; ++i){ ll n; cin >> n; s+=n; m = max(m, n); } ll r = (ll)ceil((long double)s / (a -1)); cout << max(m, r) << endl; return 0; } ``` ### https://codeforces.com/problemset/problem/4/C ```cpp! #include<bits/stdc++.h> using namespace std; signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int a; cin >> a; unordered_map<string, int> m; for(int i=0; i < a; ++i){ string n; cin >> n; if(m.find(n) == m.end()){ cout << "OK" << endl; m[n] = 0; } else{ m[n]++; string n2 = n +to_string(m[n]); cout << n2 << endl; m[n2] = 0; }; } return 0; } ``` ### https://codeforces.com/problemset/problem/25/A ```cpp! #include<bits/stdc++.h> using namespace std; signed main(){ int a, c =0, l=0; cin >> a; vector<int> v(a); for(int i = 0; i < a; ++i){ cin >> v[i]; (v[i] % 2 == 0) ? c++ : l++; } if(c > l){ for(int i = 0; i < a; ++i){ if(v[i] % 2 != 0){ cout << (i + 1) << endl; return 0; } } } else{ for(int i = 0; i < a; ++i){ if(v[i] % 2 == 0){ cout << (i + 1) << endl; return 0; } } } return 0; } ``` ### https://codeforces.com/problemset/problem/406/B ```cpp! #pragma GCC optimize("Ofast,unroll-loops") #include <bits/stdc++.h> #define fast() ios::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr) using namespace std; int main(){ fast(); int n=0; cin >> n; vector<int> a(n); for(int c =0; c < n; ++c) cin >> a[c]; sort(a.begin(), a.end()); int q = 0; cin >> q; for(int c =0; c < q; ++c){ int t =0; cin >> t; cout << upper_bound(a.begin(), a.end(), t) - a.begin() << endl; } return 0; } ``` # Research