Problem: 2049C - MEX Cycle
Language: c++17 

Code 1:
#include <bits/stdc++.h>

using namespace std;



int main() {

    long long input;

    cin >> input;

    for(long long i=0 ; i<input ; i++){

        int n,k,m;

        cin >> n >> k >> m;

        int minx=INT_MAX;

        vector<int> que(n,0);

        for(int j=0 ; j<n ; j++){

            if(j==0){

                if(j+1==k){

                    if(que[j+1]==1 || que[n-j-1]==1 || que[m-1]==1){

                        if(que[j+1]==2 || que[n-j-1]==2 || que[m-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else if(j+1==m){

                    if(que[j+1]==1 || que[n-j-1]==1 || que[k-1]==1){

                        if(que[j+1]==2 || que[n-j-1]==2 || que[k-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else{

                    if(que[j+1]==1 || que[n-j-1]==1){

                        if(que[j+1]==2 || que[n-j-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

            }

            else if(j==n-1){

                if(j+1==k){

                    if(que[0]==1 || que[n-2]==1 || que[m-1]==1){

                        if(que[0]==2 || que[n-2]==2 || que[m-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else if(j+1==m){

                    if(que[0]==1 || que[n-2]==1 || que[k-1]==1){

                        if(que[0]==2 || que[n-2]==2 || que[k-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else{

                    if(que[0]==1 || que[n-2]==1){

                        if(que[0]==2 || que[n-2]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

            }

            else{

                if(j+1==k){

                    if(que[j+1]==1 || que[j-1]==1 || que[m-1]==1){

                        if(que[j+1]==2 || que[j-1]==2 || que[m-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else if(j+1==m){

                    if(que[j+1]==1 || que[j-1]==1 || que[k-1]==1){

                        if(que[j+1]==2 || que[j-1]==2 || que[k-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else{

                    if(que[j+1]==1 || que[j-1]==1){

                        if(que[j+1]==2 || que[j-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

            }

        }

        for(int j=0 ; j<n ; j++){

            cout << que[j]-minx << " ";

        }

        cout << endl;

    }

}

Code 2:
#include <bits/stdc++.h>

using namespace std;



int main() {

    long long input;

    cin >> input;

    for(long long i=0 ; i<input ; i++){

        int n,k,m;

        cin >> n >> k >> m;

        int minx=INT_MAX;

        vector<int> que(n,0);

        for(int j=0 ; j<n ; j++){

            if(j==0 || j==n-1){

                if(j+1==k){

                    if(que[j+1]==1 || que[n-j-1]==1 || que[m-1]==1){

                        if(que[j+1]==2 || que[n-j-1]==2 || que[m-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else if(j+1==m){

                    if(que[j+1]==1 || que[n-j-1]==1 || que[k-1]==1){

                        if(que[j+1]==2 || que[n-j-1]==2 || que[k-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else{

                    if(que[j+1]==1 || que[n-j-1]==1){

                        if(que[j+1]==2 || que[n-j-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

            }

            else{

                if(j+1==k){

                    if(que[j+1]==1 || que[j-1]==1 || que[m-1]==1){

                        if(que[j+1]==2 || que[j-1]==2 || que[m-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                if(j+1==m){

                    if(que[j+1]==1 || que[j-1]==1 || que[k-1]==1){

                        if(que[j+1]==2 || que[j-1]==2 || que[k-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

                else{

                    if(que[j+1]==1 || que[j-1]==1){

                        if(que[j+1]==2 || que[j-1]==2){

                            que[j]=3;

                            minx=min(minx,que[j]);

                        }

                        else{

                            que[j]=2;

                            minx=min(minx,que[j]);

                        }

                    }

                    else{

                        que[j]=1;

                        minx=min(minx,que[j]);

                    }

                }

            }

        }

        for(int j=0 ; j<n ; j++){

            cout << que[j]-minx << " ";

        }

        cout << endl;

    }

}

Answer: 1