#include<bits/stdc++.h>
using namespace std;
int C(int n,int r){
if(r<0 or r>n) return 0;
int ans=1;
for(int i=r+1;i<=n;i++) ans*=i;
for(int i=2;i<=n-r;i++) ans/=i;
return ans;
}
void solve(){
int n,k;
cin>>n>>k;
if(k==1){
cout<<"1\n";
return;
}
vector<int>a(n-k+1);
vector<int>val(k,-1);
for(auto &i:a) cin>>i;
for(int i=1;i<n-k+1;i++){
int g=(i-1)%k;
if(a[i]-a[i-1]==1){
if(val[g]<0) val[g]=0;
}
if(a[i]-a[i-1]==-1){
if(val[g]<0) val[g]=1;
}
}
int su=0,rem=k;
for(auto i:val){
if(i>=0){
su+=i;
rem--;
}
}
cout<<C(rem,a[0]-su)<<endl;
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
solve();
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |