Encuentre la disposición de la cola en un momento dado

n personas están haciendo cola para comprar boletos de entrada para el carnaval. Las personas presentes allí creen firmemente en la caballería. Por lo tanto, en el tiempo = t, si un hombre en la posición x encuentra a una mujer de pie detrás de él, entonces intercambia su posición con ella y, por lo tanto, en el tiempo = t+1, la mujer está de pie en la posición x mientras que el hombre está detrás de ella. 
Dado el número total de personas en una cola como n, un instante particular de tiempo como t y la disposición inicial de la cola en forma de una string que contiene ‘M’ que representa al hombre en la posición i y ‘W’ que representa a la mujer en la posición i, averigüe la disposición de la cola en el tiempo = t. 
Ejemplos: 
 

Input : n = 6, t = 2
       BBGBBG
Output: GBBGBB
Explanation:
At t = 1, 'B' at position 2 will swap
with 'G' at position 3 and 'B' at 
position 5 will swap with 'G' at 
position 6. String after t = 1 changes 
to "BGBBGB". Now at t = 2, 'B' at
position = 1 will swap with 'G' at 
position = 2 and 'B' at position = 4 
will swap with 'G' at position 5. 
String changes to "GBBGBB". Since, 
we have to display arrangement at
t = 2, the current arrangement is 
our answer. 

Input : n = 8, t = 3
       BBGBGBGB
Output: GGBGBBBB

C++

// CPP program to find the arrangement
// of queue at time = t
#include <bits/stdc++.h>
using namespace std;
 
// prints the arrangement at time = t
void solve(int n, int t, string s)
{
    // Checking the entire queue for
    // every moment from time = 1 to
    // time = t.
    for (int i = 0; i < t; i++)
        for (int j = 0; j < n - 1; j++)
         
            /*If current index contains 'B'
              and next index contains 'G'
              then swap*/
            if (s[j] == 'B' && s[j + 1] == 'G') {
                char temp = s[j];
                s[j] = s[j + 1];
                s[j + 1] = temp;
                j++;
            }
             
    cout << s;
}
 
// Driver function for the program
int main()
{
    int n = 6, t = 2;
    string s = "BBGBBG";
    solve(n, t, s);
    return 0;
}

Java

// Java program to find the arrangement
// of queue at time = t
import java.io.*;
 
class Geek {
     
    // prints the arrangement at time = t
    static void solve(int n, int t, char s[])
    {
        // Checking the entire queue for
        // every moment from time = 1 to
        // time = t.
        for (int i = 0; i < t; i++)
            for (int j = 0; j < n - 1; j++)
             
                /*If current index contains 'B'
                  and next index contains 'G'
                  then swap.*/
                if (s[j] == 'B' && s[j + 1] == 'G') {
                    char temp = s[j];
                    s[j] = s[j + 1];
                    s[j + 1] = temp;
                    j++;
                }
                 
        System.out.print(s);
    }
     
    // Driver function
    public static void main(String args[])
    {
        int n = 6, t = 2;
        String s = "BBGBBG";
        char str[] = s.toCharArray();
        solve(n, t, str);
    }
}

Python3

# Python program to find
# the arrangement of
# queue at time = t
 
# prints the arrangement
# at time = t
def solve(n, t, p) :
     
    s = list(p)
     
    # Checking the entire
    # queue for every
    # moment from time = 1
    # to time = t.
    for i in range(0, t) :
     
        for j in range(0, n - 1) :    
         
            # If current index
            # contains 'B' and
            # next index contains
            # 'G' then swap
            if (s[j] == 'B' and
                s[j + 1] == 'G') :
                 
                temp = s[j];
                s[j] = s[j + 1];
                s[j + 1] = temp;
                j = j + 1   
                 
    print (''.join(s))
 
# Driver code
n = 6
t = 2
p = "BBGBBG"
solve(n, t, p)
 
# This code is contributed by
# Manish Shaw(manishshaw1)

C#

// C# program to find the arrangement
// of queue at time = t
using System;
 
class Geek {
     
    // prints the arrangement at time = t
    static void solve(int n, int t, char[] s)
    {
        // Checking the entire queue for
        // every moment from time = 1 to
        // time = t.
        for (int i = 0; i < t; i++)
            for (int j = 0; j < n - 1; j++)
             
                /*If current index contains 'B'
                and next index contains 'G'
                then swap.*/
                if (s[j] == 'B' && s[j + 1] == 'G')
                {
                    char temp = s[j];
                    s[j] = s[j + 1];
                    s[j + 1] = temp;
                    j++;
                }
                 
        Console.Write(s);
    }
     
    // Driver function
    public static void Main(String[] args)
    {
        int n = 6, t = 2;
        String s = "BBGBBG";
        char []str = s.ToCharArray();
        solve(n, t, str);
    }
}
 
// This code is contributed by parashar...

PHP

<?php
// PHP program to find
// the arrangement of
// queue at time = t
 
// prints the arrangement
// at time = t
function solve($n, $t, $s)
{
    // Checking the entire
    // queue for every
    // moment from time = 1
    // to time = t.
    for ($i = 0; $i < $t; $i++)
    {
        for ($j = 0;
             $j < $n - 1; $j++)
        {
         
            /*If current index
            contains 'B' and
            next index contains
            'G' then swap*/
            if ($s[$j] == 'B' &&
                $s[$j + 1] == 'G')
            {
                $temp = $s[$j];
                $s[$j] = $s[$j + 1];
                $s[$j + 1] = $temp;
                $j++;
            }
        }
    }            
    echo ($s);
}
 
// Driver code
$n = 6; $t = 2;
$s = "BBGBBG";
solve($n, $t, $s);
 
// This code is contributed by
// Manish Shaw(manishshaw1)
?>

Javascript

<script>
// Javascript program to find the arrangement
// of queue at time = t
 
// prints the arrangement at time = t
function solve( n, t, st)
{
    // Checking the entire queue for
    // every moment from time = 1 to
    // time = t.
    let s = st.split('');
    for (var i = 0; i < t; i++)
        for (var j = 0; j < n - 1; j++)
         
            /*If current index contains 'B'
              and next index contains 'G'
              then swap*/
            if (s[j] == 'B' && s[j + 1] == 'G') {
                var temp = s[j];
                s[j] = s[j + 1];
                s[j + 1] = temp;
                j++;
            }
             
    document.write(s.join(''));
}
 
// Driver function for the program
var n = 6, t = 2;
var s = "BBGBBG";
solve(n, t, s);
 
//This code is contributed by Shubham Singh
</script>

Publicación traducida automáticamente

Artículo escrito por HGaur y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *