Решение задачи Неподвижные точки с Acmp

Без пояснения   Просмотров: 60


Перестановкой P[1..n] размера n называется набор чисел от 1 до n, расположенных в определенном порядке. При этом в нем должно присутствовать ровно один раз каждое из этих чисел. Примером перестановок являются 1,3,4,5,2 (для n=5) и 3,2,1 (для n=3), а, например, 1,2,3,4,5,1 перестановкой не является, так как число 1 встречается два раза.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int n,k, k1, k2 = 0;
    cin >> n >> k;
    string s;
    if(n == k){
        cout << 1;
        return 0;
    }
    s.clear();
    for(int i = 1; i <= n; ++i)
        s.push_back(48 + i);
    while(next_permutation(s.begin(),s.end())){
        k1 = 0;
        for(int i = 0; i < s.size(); ++i)
            if(s[i] - 48 == i + 1)
                ++k1;
        if(k1 == k)
            ++k2;
    }
    cout << k2;
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться