Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

var scanner = bufio.NewScanner(os.Stdin)

func nextInt() (int, error) {
	return strconv.Atoi(nextString())
}

func nextString() string {
	scanner.Scan()
	return scanner.Text()
}

func printArr(arr []string) {
	fmt.Println(strings.TrimRight(fmt.Sprintf("%+v", arr)[1:], "]"))
}

func main() {
	scanner.Split(bufio.ScanWords)

	n, _ := nextInt()
	x := make([]int, 2019+1)
	for i := range x {
		x[i] = -1
	}
	for i := 0; i < n; i++ {
		p, _ := nextInt()
		x[p] = i + 1
	}
	m, _ := nextInt()
	a := make([]int, m)
	for i := 0; i < m; i++ {
		a[i], _ = nextInt()
	}

	for i := 0; i < m; i++ {
		ai := a[i]
		//		fmt.Println(a, ai, x[0:10])
		for j := 1; j < 2019; j++ {
			if (x[j] == ai) && (x[j+1] == -1) {
				x[j] = -1
				x[j+1] = ai
				break
			}
		}
	}

	for i := 1; i <= 2019; i++ {
		for j := 1; j <= 2019; j++ {
			if x[j] == i {
				fmt.Println(j)
				break
			}
		}
	}
}

C++: #include <cstdio>
#include <iostream>
using namespace std;

//#define MAX 10
#define MAX 2020

int n;
int X[110] = {0};
int m;
int A[110] = {0};
int BRD[MAX] = {0};

int main(void)
{
    cin >> n;
    for(int i=1;i<=n;i++){
        cin >> X[i];  
        BRD[X[i]] = 1;
    }

    cin >> m;
    for(int j=1;j<=m;j++){
        cin >> A[j];
    }

    for(int j=1;j<=m;j++){
        if(BRD[X[A[j]]+1] != 1 && X[A[j]] != (MAX-1)){
            BRD[X[A[j]]]=0;
            BRD[X[A[j]]+1] = 1;
            X[A[j]]++;
        }
    }

    for(int b=1;b<=MAX-1;b++){
        if(BRD[b] == 1){
            cout << b << endl;
        }
    }
}

C++: // 服部　舜也 hatochun

#include<iostream>
#include<vector>
using namespace std;
int main(){
    int n;
    cin>>n;
    int num[n];
    for(int i=0;i<n;i++){
        
        cin>>num[i];
    }
    int m;
    cin>>m;
    vector<int> a;
   for(int i=0;i<m;i++){
       int tmp;
       cin>>tmp;
       a.push_back(tmp);
   }
   for(int i=0;i<a.size();i++){
       int idx=a[i]-1;
    //    cout<<"idx:"<<idx<<"\n";
        if((num[idx]+1)!=num[idx+1]&&num[idx]!=2019)num[idx]++;
   }

   for(int i=0;i<n;i++){
       cout<<num[i];
       if(i!=n)cout<<"\n";
   }

}

C++: #include<iostream>
using namespace std;

int main() {
	int N = 0;
	int A[1000] = { 0 };
	int X[1000] = { 0 };
	int M = 0;

	cin >> N;
	for (int i= 0; i < N; i++) {
		cin >> X[i];
	}
	cin >> M;
	for (int i = 0; i < M; i++) {
		cin >> A[i];
	}
	for (int i = 0; i < M; i++) {
			if (X[A[i]-1] + 1 == X[A[i]]||X[A[i]-1]==2019) {

			}
			else {
				X[A[i]-1] += 1;
			}
	}

	for (int i = 0; i < N; i++) {
		cout << X[i] << endl;
	}


}

C++: #include<iostream>
using namespace std;

int main(){
  int n;
  cin>>n;
  int x[n];
  for(int i=0;i<n;i++){
    cin>>x[i];
  }
  int m;
  cin>>m;
  int a[m];
  for(int i=0;i<m;i++){
    cin>>a[i];
  }

  for(int i=0;i<m;i++){
    if(x[a[i]-1] != 2019 && x[a[i]-1]+1 != x[a[i]]){
      x[a[i]-1]++;
    }
  }
  for(int i=0;i<n;i++){
    cout<<x[i]<<endl;
  }
  return 0;
}

C++: # include<iostream>
using namespace std;
# define N 1000
int main(){
    int n; cin >> n;
    int x[N]; for(int i=0; i<n; i++) cin >> x[i];
    int M; cin >> M;
    int y[N]; for(int i=0; i<M; i++) {cin >> y[i]; y[i]--;}

        for(int i=0; i<M; i++){
            if(x[y[i]] != 2019){
                if(x[y[i]+1] != x[y[i]]+1) x[y[i]] = x[y[i]]+1;
                //else x[y[i]] = x[y[i]];
            }
        }
    for(int i=0; i<n; i++) cout << x[i] << "\n";
    return 0;
}

C++: #include <iostream>
#include <map>
using namespace std;

int main() {
  int n;
  cin >> n;
  int x[n];
  bool p[2100] = {false};
  map<int, int> x_map;
  int i;
  for (i = 0; i < n; i++) {
    cin >> x[i];
    p[x[i]] = true;
    x_map[i + 1] = x[i];
  }
  int m;
  cin >> m;
  int a[m];
  for (i = 0; i < m; i++) {
    cin >> a[i];
  }
  for (i = 0; i < m; i++) {
    if (p[x_map[a[i]] + 1] == false && x_map[a[i]] != 2019) {
      p[x_map[a[i]] + 1] = true;
      p[x_map[a[i]]] = false;
      x_map[a[i]]++;
    }
  }
  for (i = 0; i < 2020; i++) {
    if (p[i]) {
      cout << i << endl;
    }
  }
  return 0;
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <iomanip>
#include <algorithm>
#define lint long long int
#define FOR(x, to) for(int x=0; x<(to); x++) // for簡略表記
#define DUMP(ar) for(int i=0; i<ar.size(); i++) cout << "[" << i << "]:" << ar[i] << endl // 配列一覧表示
#define DUMPL(ar) for(unsigned int i=0; i<ar.size(); i++) { cout << ar[i]; if(i<ar.size()-1) cout << ' '; } cout << endl; // 配列一行一覧表示"
#define COUT(x) cout << x << endl // 単要素出力
#define ALL(ar) ar.begin(), ar.end() // コンテナの全要素
#define LOOPD(i) cout << "ループ[" << i << "]回目---------------" << endl // ループ回数デバグ
using namespace std;
// cout << fixed << setprecision(4) で小数点以下4桁の桁そろえ
// cout << setw(5) << ... で表示形式を5桁に設定 5桁未満なら頭に空白がつく 5桁越なら先頭から5桁まで
// cout << setw(5) << setfill('0') << ... で空白部分の埋め文字に5を使う
// goto ANSWER; で最後へ飛ぶ
// getline(cin, [変数]); で空白など(ホワイトスペース)を含む入力
// cin >> ws; でそこまでに入力ストリームに残されたホワイトスペースを取り除く(=以降のgetlineの有効化)

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    
    int n, m;
    cin >> n;
    vector<int> x(n);
    FOR(i, n) cin >> x[i];
    cin >> m;
    vector<int> a(m);
    FOR(i, m) cin >> a[i];
    
    for(int i=0; i<m; i++){
        int place = x[a[i]-1] + 1;
        if(place >= 2020) continue;
        bool flag = true;
        for(int i=0; i<n; i++){
            if(x[i] == place){
                flag = false;
                break;
            }
        }
        if(flag) x[a[i]-1] += 1;
    }

    for(int i=0; i<n; i++){
        cout << x[i] << endl;
    }

    return 0;
}

C++: #include<stdio.h>

int main(){
    int n;//xの数
    int x[10000];//元の位置
    int m;//aの数
    int a[10000];//移動させるこまが何番目のものであるか
    
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf(" %d",&x[i]);
    }
    scanf("%d",&m);
    for(int i=0;i<m;i++){
        scanf(" %d",&a[i]);
        a[i]--;
    }

    for(int i=0;i<m;i++){
        if(x[a[i]]==2019){
            continue;
        }
        if(a[i]+1<n&&x[a[i]+1]==x[a[i]]+1){
		    continue;
        }
		x[a[i]]++;
    }

    for(int i=0;i<n;i++){
        printf("%d\n",x[i]);
    }
    return 0;
}

C++: #include <cstdlib>
#include <iostream>

using namespace std;

const int LIMIT = 2019;

int n; //駒数
int x[101]; //各コマの状態
int m; //操作回数
//int a[101]; //操作対象

void object_move(int object_num){
    int tgt_pos = x[object_num] + 1;
    if(tgt_pos > LIMIT){
        return;
    }

    for(int i=0; i<m; i++){
        if(x[i] == tgt_pos){
            if(i != object_num){
                return;
            }
        }
    }

    x[object_num] += 1;
}

int main(){

    cin >> n;
    for(int i=0; i<n; i++){
        cin >> x[i];
    }
    cin >> m;
    for(int i=0; i<m; i++){
        int a;
        cin >> a;
        object_move((a-1));
    }


    for(int i=0; i<n; i++){
        cout << x[i] << endl;
    }

    return 0;

}