CSES - Datatähti 2021 loppu - Results
Submission details
Task:Järjestäminen
Sender:Juho
Submission time:2021-01-23 18:36:34 +0200
Language:C++ (C++11)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:40:95: error: expected ']' before ';' token
                 sisallot[sijainnit[sisallot[sijainnit[muisti]+1]]=sisallot[sijainnit[muisti]+1;
                                                                                               ^
input/code.cpp:40:95: error: expected ']' before ';' token

Code

#include <bits/stdc++.h>
using namespace std;

int n, t, luku, muisti;
bool totuus;
int sijainnit[101];
int sisallot[101];
int main() {
    cin>>t;
    for(int sj=0;sj<t;sj++){
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>luku;
            sisallot[i]=luku;
            sijainnit[luku]=i;
        }
        muisti=1;
        while(muisti<n-3){
            if(sijainnit[muisti]==muisti){
                muisti++;
            }else if(sijainnit[muisti]==n){
                swap(sisallot[n], sisallot[n-2]);
                swap(sisallot[n-1], sisallot[n-3]);
                sijainnit[sisallot[n]]=n;
                sijainnit[sisallot[n-1]]=n-1;
                sijainnit[sisallot[n-2]]=n-2;
                sijainnit[sisallot[n-3]]=n-3;
            }else if(sijainnit[muisti]==muisti+1){
                swap(sisallot[muisti+1], sisallot[muisti+3]);
                swap(sisallot[muisti+2], sisallot[muisti+4]);
                sijainnit[sisallot[muisti+1]]=muisti+1;
                sijainnit[sisallot[muisti+2]]=muisti+2;
                sijainnit[sisallot[muisti+3]]=muisti+3;
                sijainnit[sisallot[muisti+4]]=muisti+4;
            }else{
                swap(sijainnit[muisti],sijainnit[sisallot[muisti]]);
                swap(sijainnit[sisallot[sijainnit[muisti]+1]], sijainnit[sisallot[muisti+1]]);
                sisallot[sijainnit[muisti]]=muisti;
                sisallot[sijainnit[sisallot[muisti]]]=sisallot[muisti];
                sisallot[sijainnit[sisallot[sijainnit[muisti]+1]]=sisallot[sijainnit[muisti]+1;
                sisallot[sijainnit[sisallot[muisti+1]]]=sisallot[muisti+1];
                muisti++;
            }
            
        }
        if(n>3){
                if(sijainnit[n-3]==n||sijainnit[n-3]==n-2){
                    cout<<"NO";
                }else if(sijainnit[n-3]==n-3){
                    if(sijainnit[n-2]==n-2&&sijainnit[n-1]==n-1){
                        cout<<"YES";
                    }else{
                        cout<<"NO";
                    }
                }else{
                    if(sijainnit[n]==n-2&&sijainnit[n-2]==n){
                        cout<<"YES";
                    }else{
                        cout<<"NO";
                    }
                }
            }else{
                totuus = true;
                for(int i=1;i<=n;i++){
                    if(sisallot[i]!=i){
                        totuus = false;
                    }
                }
                if(totuus){
                    cout<<"YES";
                }else{
                    cout<<"NO";
                }
            }
    }
}