Language: C++

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

int find_num(int n, int k, vector<int> &inp) {
    set<int> num;
    if (k=2) {
        for (int i=0; i<n; i++) {
            for (int j=0; j<n; j++) {
                if (i!=j){
                    num.insert((int)(to_string(inp.at(i))+to_string(inp.at(j))));
                }
            }
        }
    }
    else if (k=3) {
        for (int i=0; i<n; i++) {
            for (int j=0; j<n; j++) {
                for (int k=0; k<n; k++) {
                    if (i!=j && j!=k && k!=i) {
                        num.insert((int)(to_string(inp.at(i))+to_string(inp.at(j))+to_string(inp.at(k))));
                    }
                }
            }
        }
    }
    else {
        for (int i=0; i<n; i++) {
            for (int j=0; j<n; j++) {
                if (i!=j) {
                    for (int k=0; k<n; k++) {
                        if (i!=k && j!=k) {
                            for (int l=0; l<n; l++) {
                                if (i!=l && j!=l && k!=l) {
                                    num.insert((int)(to_string(inp.at(i))+to_string(inp.at(j))+to_string(inp.at(k))+to_string(inp.at(l))));
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return set.size();
}

int main() {
    int n, k;
    cin >> n >> k;
    vector<int> inp(n);
    for (int i=0; i<n; i++) {
        cin >> inp(i);
    }
    cout << find_num(n, k, &inp) << endl;
}

Compiler output:
a.cc: In function 'int find_num(int, int, std::__debug::vector<int>&)':
a.cc:11:32: error: invalid cast from type 'std::__cxx11::basic_string<char>' to type 'int'
   11 |                     num.insert((int)(to_string(inp.at(i))+to_string(inp.at(j))));
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a.cc:21:36: error: invalid cast from type 'std::__cxx11::basic_string<char>' to type 'int'
   21 |                         num.insert((int)(to_string(inp.at(i))+to_string(inp.at(j))+to_string(inp.at(k))));
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a.cc:35:48: error: invalid cast from type 'std::__cxx11::basic_string<char>' to type 'int'
   35 |                                     num.insert((int)(to_string(inp.at(i))+to_string(inp.at(j))+to_string(inp.at(k))+to_string(inp.at(l))));
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a.cc:44:15: error: missing template arguments before '.' token
   44 |     return set.size();
      |               ^
a.cc: In function 'int main()':
a.cc:52:19: error: no match for call to '(std::__debug::vector<int>) (int&)'
   52 |         cin >> inp(i);
      |                ~~~^~~
a.cc:54:28: error: invalid initialization of non-const reference of type 'std::__debug::vector<int>&' from an rvalue of type 'std::__debug::vector<int>*'
   54 |     cout << find_num(n, k, &inp) << endl;
      |                            ^~~~
a.cc:5:41: note: in passing argument 3 of 'int find_num(int, int, std::__debug::vector<int>&)'
    5 | int find_num(int n, int k, vector<int> &inp) {
      |                            ~~~~~~~~~~~~~^~~