---
# System prepended metadata

title: BTVN

---

## 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;
}         
```