# 6/9 ## A1) ``` cpp #include <iostream> using namespace std; void fast() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(0); } void onePunchAC() { int n; cin >> n; for(int i = 1; i <= n; i++) { cout << i << ' '; } } int main() { fast(); onePunchAC(); return 0; } ``` ## A2) ``` cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; void fast() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(0); } void onePunchAC() { int n; cin >> n; vector<int> a(n+1); for(int i = 1; i <= n; i++) a[i] = i; if(n == 1) { cout << a[0]; } else { swap(a[a.size() - 1], a[a.size()-2]); for(int i = 1; i <= n; i++) { cout << a[i] << ' '; } } } int main() { fast(); onePunchAC(); return 0; } ``` ## A3) ``` cpp #include <iostream> using namespace std; void fast() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(0); } void onePunchAC() { int n; cin >> n; for(int i = 1; i <= n; i++) { cout << i << ' '; } } int main() { fast(); onePunchAC(); return 0; } ``` ## B) ``` cpp #include <iostream> #include <algorithm> using namespace std; void fast() { ios::sync_with_stdio(false); cin.tie(nullptr); } void onePunchAC() { int n; cin >> n; int a[n+1]; for(int i = 1; i <= n; i++) a[i] = i; do{ for(int i = 1; i <= n; i++) cout << a[i] << ' '; cout << '\n'; }while(next_permutation(a+1,a+n+1)); } int main() { fast(); onePunchAC(); return 0; } ``` ## B2) ```cpp #include <iostream> #include <algorithm> using namespace std; int a[100]; int ans[100]; bool check[100]; int n,k; void fast() { ios::sync_with_stdio(false); cin.tie(nullptr); } void output() { for(int i = 1; i <= k; i++) { cout << ans[i] << ' '; } cout << '\n'; } void Try(int i) { for(int j = 1; j <= n; j++) { if(check[j] == 0) { check[j] = 1; ans[i] = j; if(i == k) { output(); } else { Try(i+1); } check[j] = 0; } } } int main() { fast(); cin >> n >> k; for(int i = 1; i <= n; i++) a[i] = i; Try(1); return 0; } ``` ## C) ```cpp #include <iostream> #include <vector> #include <unordered_map> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; int a[n]; unordered_map<int,int> check; vector<int> ans; for(int i = 0; i < n; i++) { cin >> a[i]; if(check[a[i]] == 0) { ans.push_back(a[i]); } check[a[i]]++; } for(auto it : ans) { cout << it << ' '; } return 0; } ``` ## C2) ```cpp #include <iostream> #include <vector> #include <unordered_map> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; int a[n]; unordered_map<int,int> check; vector<int> ans; vector<int> ans2[n]; for(int i = 0; i < n; i++) { cin >> a[i]; if(check[a[i]] == 0) { ans.push_back(a[i]); } check[a[i]]++; ans2[a[i]].push_back(i); } for(auto it : ans) { for(auto it2: ans2[it]) { cout << it2 << ' '; } cout << '\n'; } return 0; } ``` ## C3) ```cpp #include <iostream> #include <vector> #include <map> #include <unordered_map> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; int a[n]; unordered_map<int,int> check; map<int,int> ans1; vector<int> ans; vector<int> ans2[n]; for(int i = 0; i < n; i++) { cin >> a[i]; if(check[a[i]] == 0) { ans.push_back(a[i]); } check[a[i]]++; ans2[a[i]].push_back(i); } for(auto it : ans2) { ans1[it.size()]++; } for(int i = 1; i <= n; i++) { cout << ans1[i] << '\n'; } return 0; } ``` ## D) ```cpp #include <iostream> #include <vector> #include <unordered_map> using namespace std; void fast() { ios::sync_with_stdio(false); cin.tie(nullptr); } void onePunchAC() { int n; cin >> n; int a[n], prev[n], next[n]; unordered_map<int,int> mp1; unordered_map<int,int> mp2; for(int i = 0; i < n; i++) cin >> a[i]; for(int i = 0; i < n; i++) { if(mp1.find(a[i]) == mp1.end()) { cout << -1 << ' '; } else { cout << mp1[a[i]] << ' '; } mp1[a[i]] = i; } cout << '\n'; vector<int> ans; for(int i = n - 1; i >= 0; i--) { if(mp2.find(a[i]) == mp2.end()) { ans.push_back(-1); } else { ans.push_back(mp2[a[i]]); } mp2[a[i]] = i; } for(int i = ans.size() - 1; i >= 0; i--) { cout << ans[i] << ' '; } } int main() { fast(); onePunchAC(); return 0; } ``` ## D2) ```cpp #include <iostream> #include <map> #include <vector> #include <algorithm> using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; int a[n+1]; map<int,vector<int>> mp; for(int i = 1; i <= n; i++) { cin >> a[i]; mp[a[i]].push_back(i); } bool first = true; for(int i = 1; i <= n; i++) { if(!first) cout << ' '; first = false; auto it = upper_bound(mp[a[i]].begin(), mp[a[i]].end(), i); if(it != mp[a[i]].end()) { int pos = *it; cout << pos - 1; } else { cout << n - i + mp[a[i]][0]; } } return 0; } ``` # 7/9 ## A) ``` cpp #include <iostream> #include <vector> #include <set> using namespace std; int main() { set<string> se; vector<string> v; string s; while(cin >> s) { if(se.find(s) == se.end()) { v.push_back(s); } se.insert(s); } for(int i = 0; i < v.size(); i++) { cout << v[i] << '\n'; } return 0; } ``` C) ``` cpp #include <iostream> using namespace std; using ll = long long; const int mod = 1e9 + 7; ll f(int n) { return (1 + n) * n / 2; } ll g(int n) { ll ans = 0; for(int i = 1; i <= n; i++) { ans+=(i*i); } return ans; } ll h(int n) { ll ans = 0; for(int i = 1; i <= n; i++) { ans+=(i*i*i); } return ans; } ll f2(int n) { return (1 + n) * n / 2 %= mod; } ll g2(int n) { ll ans = 0; for(int i = 1; i <= n; i++) { ans+=(i*i); ans %= mod; } return ans %= mod; } ll h2(int n) { ll ans = 0; for(int i = 1; i <= n; i++) { ans+=(i*i*i); ans %= mod; } return ans %= mod; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); return 0; }