## A1 + A3 ```[C++] #include <bits/stdc++.h> using namespace std; // #define int long long // #define long long int using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); // A1 + A3 int n; cin >> n; int a[n]; for(int i = 0; i<n; i++) { cin >> a[i]; cout << a[i] << " "; } cout << "\n"; for(int i = n-1; i>=0; i--) cout << a[i] << " "; return 0; } ``` ## B1 ```[] #include <bits/stdc++.h> using namespace std; using ll = long long; vector<int> v; const int nm = 1e5+5; int a[nm+1]; bool used[nm+1]; void print() { for(auto x : v) cout << x << " "; cout << "\n"; } void generate(int n, int j) { if(j == n) { print(); return; } for(int i = 0; i<n; i++) { if(used[i]==true) continue; v.push_back(a[i]); used[i] = true; generate(n, j+1); v.pop_back(); used[i] = false; } } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; for(int i = 1; i<=n; i++) a[i-1] = i; generate(n, 0); return 0; } ``` ## C1 + C2 + C3 ```[C++] #include <bits/stdc++.h> using namespace std; // #define int long long // #define long long int using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; map <int, vector<int>> m; map <int, int> s; vector<int> v; for(int i = 0; i<n; i++) { int x; cin >> x; if(m[x].empty()) { cout << x << " "; v.push_back(x); } m[x].push_back(i); } cout << "\n"; for(auto x : v) { for(int i = 0; i<m[x].size(); i++) { cout << m[x][i] << " "; } cout << "\n"; s[m[x].size()]++; } for(int k = 1; k<=n; k++) cout << s[k] << "\n"; return 0; } ``` ## D1 ```[C++] #include <bits/stdc++.h> using namespace std; // #define int long long // #define long long int using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; int a[n]; map<int, int> prev, next; vector<int> v; for(int i = 0; i<n; i++) { cin >> a[i]; if(a[prev[a[i]]] != a[i] || i == 0) cout << "-1 "; else cout << prev[a[i]] << " "; prev[a[i]] = i; } cout << "\n"; for(int i = n-1; i>=0; i--) { if(a[next[a[i]]] != a[i] || i == n-1) v.push_back(-1); else v.push_back(next[a[i]]); next[a[i]] = i; } reverse(v.begin(), v.end()); for(auto x : v) cout << x << " "; return 0; } ``` ## D2 ```[C++] #include <bits/stdc++.h> using namespace std; // #define int long long // #define long long int using ll = long long; const int nm = 2e5+5; int a[nm]; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; for(int i = 0; i<n; i++) { cin >> a[i]; a[i+n] = a[i]; } for(int i = 0; i<n; i++) { for(int j = i+1; j<2*n; j++) { if(a[i] == a[j]) { cout << j-i << " "; break; } } } return 0; } ```