Rezolvare PBinfo #1232

Decorative Icon Problema: kswap / 1232

Decorative IconAutor: Andrei

Fie A = (a[1],a[2],…,a[N]) o permutare a mulțimii {1,2,…,N}.

Permutarea A o numim K-swap dacă prin aplicarea algoritmului de sortare bubble-sort sunt necesare exact K swapuri (interschimbări) pentru ca aceasta să devină permutarea identică.
Reamintim algoritmul bubble-sort:

do {   
    ok = 1;    
    for ( i = 1; i < N; i ++ )      
        if ( a[i] > a[i+1] ){        
             swap(a[i], a[i+1]);   
             ok = 0;   
        }
}while( ok == 0 );          
Cerinţă

Pentru N și K dat să se determine numărul de permutări K-swap ale mulțimii {1,2,…,N}.

Exemplu: pentru N = 3 și K = 2, dintre permutările {1,2,3}, {1,3,2}, {2,1,3}, {2,3,1}, {3,1,2}, {3,2,1}, permutările 2-swap sunt următoarele: {2,3,1}, {3,1,2}.

Date de intrare

Fișierul de intrare kswap.in conține pe prima linie două numere naturale nenule N K separate printr-un spaţiu, cu semnificația descrisă anterior.

Date de ieșire

Fișierul de ieșire kswap.out va conține pe prima linie un singur număr natural M ce reprezintă numărul de permutări K-swap, modulo 30103 ale mulțimii {1,2,…,N}.

Restricții și precizări
  • 1 ≤ N ≤ 150
  • 1 ≤ K ≤ N*(N-1)/2
  • Prin permutarea identică înțelegem permutarea (1,2,…,N)
Exemplu:

kswap.in

4 5

kswap.out

3

Explicație

Permutările mulțimii {1,2,3,4} sunt:
{1,2,3,4}, {1,2,4,3}, {1,3,2,4}, {1,3,4,2}, {1,4,2,3}, {1,4,3,2}, {2,1,3,4}, {2,1,4,3}, {2,3,1,4}, {2,3,4,1}, {2,4,1,3}, {2,4,3,1}, {3,1,2,4}, {3,1,4,2}, {3,2,1,4}, {3,2,4,1}, {3,4,1,2}, {3,4,2,1}, {4,1,2,3}, {4,1,3,2}, {4,2,1,3}, {4,2,3,1}, {4,3,1,2}, {4,3,2,1}.

Doar 3 dintre acestea sunt permutări 5-swap: {3,4,2,1}, {4,2,3,1}, {4,3,1,2}.

Decorative Icon Explică rezolvarea folosind Inteligența Artificială

Folosește modelul nostru de AI special antrenament pentru a rezolva problemele de pe PBinfo! În baza creditelor AI primești explicații pentru probleme, pe care le alegi și le rulezi exact atunci când dorești, la un singur click distanță! Află mai multe informații:

👉 Achiziționează credite AI
Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2026 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate