1541A - Pretty Permutations - CodeForces Solution


constructive algorithms greedy implementation *800

Please click on ads to support us..

Python Code:

import math

t = int(input())

for _ in range(t):
    n = int(input())

    if n == 1:
        print('1')
    if n == 2:
        print('2 1')
    if n == 3:
        print('3 1 2')
    if n > 3:
        arr = list(range(1, n+1))
        if n % 2 == 0:
            res = []
            for i in range(0, len(arr)-1, 2):
                res.append(arr[i+1])
                res.append(arr[i])
            print(' '.join(map(str, res)))
                

        else:
            res = []
            for i in range(3, len(arr)-1, 2):
                res.append(arr[i+1])
                res.append(arr[i])
            print('3 1 2 ' + ' '.join(map(str, res)))
        

C++ Code:

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

#define endl '\n'

int main(){
    int t; cin>>t; while(t--){
        int n; cin>>n;
        vector <int> v;
        int limit = (n/2)*2;
        for(int i=0; i<n; i++){
            int temp = i+1;
            if(i<limit){
                temp = ((i%2==0)? (temp+1): (temp-1));
            }
            v.push_back(temp);
        }
        if(n%2){
            swap(v[v.size()-1], v[v.size()-2]);
        }
        for(auto i: v){
            cout<<i<<' ';
        }cout<<endl;
    }

    return 0;
}


Comments

Submit
0 Comments
More Questions

454A - Little Pony and Crystal Mine
2A - Winner
1622B - Berland Music
1139B - Chocolates
1371A - Magical Sticks
1253A - Single Push
706B - Interesting drink
1265A - Beautiful String
214A - System of Equations
287A - IQ Test
1108A - Two distinct points
1064A - Make a triangle
1245C - Constanze's Machine
1005A - Tanya and Stairways
1663F - In Every Generation
1108B - Divisors of Two Integers
1175A - From Hero to Zero
1141A - Game 23
1401B - Ternary Sequence
598A - Tricky Sum
519A - A and B and Chess
725B - Food on the Plane
154B - Colliders
127B - Canvas Frames
107B - Basketball Team
245A - System Administrator
698A - Vacations
1216B - Shooting
368B - Sereja and Suffixes
1665C - Tree Infection