106252024-04-06 23:46:17111Tömbök előállításacpp17Futási hiba 52/100532ms5424 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

#define MOD 1000000007

using vec=array<int,100>;
using mat=array<array<int,100>,100>;

mat operator*(mat a,mat b){
	mat r{};
	for(int i=0;i<100;i++){
		for(int j=0;j<100;j++){
			for(int k=0;k<100;k++){
				r[i][j]+=a[i][k]*b[k][j];
				r[i][j]%=MOD;
			}
		}
	}
	return r;
}

vec operator*(vec a,mat b){
	vec r{};
	for(int i=0;i<100;i++){
		for(int j=0;j<100;j++){
			r[i]+=r[j]*b[i][j];
			r[i]%=MOD;
		}
	}
	return r;
}

mat mat_pow(mat x,int p){
	mat r{};
	for(int i=0;i<100;i++){
		r[i][i]=1;
	}
	while(p){
		if(p&1){
			r=r*x;
		}
		x=x*x;
		p>>=1;
	}
	return r;
}

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M,L,R,K;
	cin>>N>>M>>L>>R>>K;
	vector<int>v(M);
	for(int i=0;i<M;i++){
		int s=L%M>i?L/M:L/M-1;
		int e=R%M<i?R/M-1:R/M;
		v[i]=e-s;
	}
	mat x{};
	for(int i=0;i<M;i++){
		for(int j=0;j<M;j++){
			x[i][j]=v[(j-i+M)%M];
		}
	}
	mat ans{};
	ans[0][0]=1;
	ans=ans*mat_pow(x,N);
	cout<<ans[0][K]<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva26ms2964 KiB
2Elfogadva30ms3252 KiB
3Elfogadva64ms3692 KiB
subtask210/10
4Elfogadva30ms3760 KiB
5Elfogadva30ms3988 KiB
6Elfogadva30ms4092 KiB
subtask310/10
7Elfogadva70ms4116 KiB
8Elfogadva93ms4496 KiB
9Elfogadva86ms4732 KiB
10Elfogadva115ms5036 KiB
11Elfogadva109ms4760 KiB
12Elfogadva109ms4712 KiB
13Elfogadva115ms4720 KiB
subtask47/7
14Elfogadva115ms4844 KiB
15Elfogadva120ms4860 KiB
16Elfogadva104ms5120 KiB
17Elfogadva75ms5068 KiB
18Elfogadva82ms5076 KiB
19Elfogadva104ms5080 KiB
20Elfogadva115ms5200 KiB
subtask50/8
21Futási hiba4ms4616 KiB
22Futási hiba4ms4812 KiB
23Futási hiba4ms4636 KiB
24Futási hiba4ms4720 KiB
25Hibás válasz76ms5236 KiB
26Hibás válasz64ms5236 KiB
27Futási hiba4ms4656 KiB
28Hibás válasz93ms5252 KiB
29Futási hiba4ms4812 KiB
30Futási hiba4ms4780 KiB
subtask625/25
31Elfogadva481ms5372 KiB
32Elfogadva481ms5268 KiB
33Elfogadva532ms5280 KiB
34Elfogadva515ms5284 KiB
35Elfogadva250ms5292 KiB
36Elfogadva261ms5292 KiB
37Elfogadva481ms5296 KiB
38Elfogadva284ms5300 KiB
39Elfogadva289ms5308 KiB
40Elfogadva509ms5424 KiB
subtask70/40
41Futási hiba4ms4720 KiB
42Futási hiba7ms4880 KiB
43Futási hiba7ms4844 KiB
44Futási hiba7ms4740 KiB
45Futási hiba7ms4744 KiB
46Futási hiba6ms4960 KiB
47Futási hiba6ms4888 KiB
48Elfogadva312ms5412 KiB
49Futási hiba6ms4984 KiB
50Futási hiba4ms4952 KiB