Submission #1287690

#TimeUsernameProblemLanguageResultExecution timeMemory
1287690m.zeeshanrashidBinaria (CCO23_day1problem1)C++20
10 / 25
33 ms4352 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...