Language: C++

//g++ main.cpp -I /usr/local/include/ac-library
#include<cmath>
//#include <atcoder/all>
#include <bits/stdc++.h>
using ll = long long;
using namespace std;
//using namespace atcoder;
stack<int> st;
queue<int> qu;
priority_queue<int> pq;
#define rep(i,n) for(int i=0; i<(int)(n); i++)
#define rep2(i,n) for(int i=1; i<=(int)(n); i++)
#define mins(x,y) x=min(x,y)
#define maxs(x,y) x=max(x,y)
#define ALL(a) a.begin(), a.end()
typedef set<int> set_t;
typedef set<string> set_g;
typedef complex<double> xy_t;
static const int NIL = -1;
static const int INF = 1000000007;
#define mp make_pair
#define pb push_back
#define sz(x) (int)(x).size()
#define mod 1000000007
//#define mint=modint1000000007
#define reps(i,s,n) for(int i = s; i < n; i++)
#define Rreps(i,n,e) for(int i = n - 1; i >= e; --i)
#define Rrep(i,n) Rreps(i,n,0)
deque<int> deq;
#define fi first
#define se second
//const ll MOD = 998244353;
const ll MOD = (1e+9) + 7;
typedef pair<int, int> P;
typedef vector<ll> vec;
typedef vector<vec> mat;

ll dp[55][55][2505];

int main(){
    int n,a;
    cin >> n>> a;
    vector<int> x(n,0);
    rep2(i,n){
        cin >> x[i];
    }
    rep(j,n+1){
        rep(k,n+1){
            rep(s,n*x+1){
                if(j==0&&k==0&&s==0){
                    dp[j][k][s]=1;
                }else if(j>=1&&s<x[j]){
                    dp[j][k][s]=dp[j-1][k][s];
                }else if(j>=1&&k>=1&&s>=x[j]){
                    dp[j][k][s]=dp[j-1][k][s]+dp[j-1][k-1][s-x[j]];
                }else{
                    dp[j][k][s]=0;
                }
            }
        }
    }
    ll ans=0;
    rep2(k,n){
        ans+=dp[n][k][k*a];
    }
    
    cout<<ans<<endl;
    return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:49:20: error: no match for 'operator*' (operand types are 'int' and 'std::vector<int>')
   49 |             rep(s,n*x+1){
      |                   ~^~
      |                   | |
      |                   | std::vector<int>
      |                   int
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
In file included from /usr/include/c++/14/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:127,
                 from a.cc:4:
/usr/include/c++/14/complex:400:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const complex<_Tp>&, const complex<_Tp>&)'
  400 |     operator*(const complex<_Tp>& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/14/complex:400:5: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   mismatched types 'const std::complex<_Tp>' and 'int'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/complex:409:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const complex<_Tp>&, const _Tp&)'
  409 |     operator*(const complex<_Tp>& __x, const _Tp& __y)
      |     ^~~~~~~~
/usr/include/c++/14/complex:409:5: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   mismatched types 'const std::complex<_Tp>' and 'int'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/complex:418:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const _Tp&, const complex<_Tp>&)'
  418 |     operator*(const _Tp& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/14/complex:418:5: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   'std::vector<int>' is not derived from 'const std::complex<_Tp>'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
In file included from /usr/include/c++/14/valarray:605,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:166:
/usr/include/c++/14/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const _Expr<_Dom1, typename _Dom1::value_type>&, const _Expr<_Dom2, typename _Dom2::value_type>&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'int'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const _Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'int'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const typename _Dom::value_type&, const _Expr<_Dom1, typename _Dom1::value_type>&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   'std::vector<int>' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const _Expr<_Dom1, typename _Dom1::value_type>&, const valarray<typename _Dom::value_type>&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'int'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const valarray<typename _Dom::value_type>&, const _Expr<_Dom1, typename _Dom1::value_type>&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   'std::vector<int>' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/valarray:1198:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const valarray<_Tp>&, const valarray<_Tp>&)'
 1198 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/valarray:1198:1: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   mismatched types 'const std::valarray<_Tp>' and 'int'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/valarray:1198:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const valarray<_Tp>&, const typename valarray<_Tp>::value_type&)'
 1198 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/valarray:1198:1: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   mismatched types 'const std::valarray<_Tp>' and 'int'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^
/usr/include/c++/14/valarray:1198:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const typename valarray<_Tp>::value_type&, const valarray<_Tp>&)'
 1198 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/valarray:1198:1: note:   template argument deduction/substitution failed:
a.cc:49:21: note:   'std::vector<int>' is not derived from 'const std::valarray<_Tp>'
   49 |             rep(s,n*x+1){
      |                     ^
a.cc:11:39: note: in definition of macro 'rep'
   11 | #define rep(i,n) for(int i=0; i<(int)(n); i++)
      |                                       ^