求#数组#相邻项相同的个数

这有一个数n(<1000000000000),一个数k(<100000000),一个数组中含有最多k种元素,元素数量为n;

例:当n=3,k=2时,数组:{0,0,0},{1,0,0},{1,1,0},{0,0,1},{0,1,1},{1,0,1},{0,1,0},{1,1,1}

然后,求出他们之间有相邻元素相等的数组的个数
比如上面那个:

有6种:{0,0,0},{1,0,0},{1,1,0},{0,0,1},{0,1,1},{1,1,1}.

我一开始想到了vector<int>,但是想了想,

懵了。

这是我一开始写的代码

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

int main()
{
    vector<int> l;int n,k;int sum=0;
    cin>>n>>k;
    for(int i=0;i<k;i++)
    {
        for(int j=0;j<n-k;j++)
        {
            //???
            sum++;
        }
    }
    cout<<sum;
    return 0;
}


2022蓝桥杯中级组也有类似的题,但我没做出来……

push_back()写哪,怎么写,都是问题。。。