10625 2024. 04. 06 23:46:17 111 Tömbök előállítása cpp17 Futási hiba 52/100 532ms 5424 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 Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 26ms 2964 KiB
2 Elfogadva 30ms 3252 KiB
3 Elfogadva 64ms 3692 KiB
subtask2 10/10
4 Elfogadva 30ms 3760 KiB
5 Elfogadva 30ms 3988 KiB
6 Elfogadva 30ms 4092 KiB
subtask3 10/10
7 Elfogadva 70ms 4116 KiB
8 Elfogadva 93ms 4496 KiB
9 Elfogadva 86ms 4732 KiB
10 Elfogadva 115ms 5036 KiB
11 Elfogadva 109ms 4760 KiB
12 Elfogadva 109ms 4712 KiB
13 Elfogadva 115ms 4720 KiB
subtask4 7/7
14 Elfogadva 115ms 4844 KiB
15 Elfogadva 120ms 4860 KiB
16 Elfogadva 104ms 5120 KiB
17 Elfogadva 75ms 5068 KiB
18 Elfogadva 82ms 5076 KiB
19 Elfogadva 104ms 5080 KiB
20 Elfogadva 115ms 5200 KiB
subtask5 0/8
21 Futási hiba 4ms 4616 KiB
22 Futási hiba 4ms 4812 KiB
23 Futási hiba 4ms 4636 KiB
24 Futási hiba 4ms 4720 KiB
25 Hibás válasz 76ms 5236 KiB
26 Hibás válasz 64ms 5236 KiB
27 Futási hiba 4ms 4656 KiB
28 Hibás válasz 93ms 5252 KiB
29 Futási hiba 4ms 4812 KiB
30 Futási hiba 4ms 4780 KiB
subtask6 25/25
31 Elfogadva 481ms 5372 KiB
32 Elfogadva 481ms 5268 KiB
33 Elfogadva 532ms 5280 KiB
34 Elfogadva 515ms 5284 KiB
35 Elfogadva 250ms 5292 KiB
36 Elfogadva 261ms 5292 KiB
37 Elfogadva 481ms 5296 KiB
38 Elfogadva 284ms 5300 KiB
39 Elfogadva 289ms 5308 KiB
40 Elfogadva 509ms 5424 KiB
subtask7 0/40
41 Futási hiba 4ms 4720 KiB
42 Futási hiba 7ms 4880 KiB
43 Futási hiba 7ms 4844 KiB
44 Futási hiba 7ms 4740 KiB
45 Futási hiba 7ms 4744 KiB
46 Futási hiba 6ms 4960 KiB
47 Futási hiba 6ms 4888 KiB
48 Elfogadva 312ms 5412 KiB
49 Futási hiba 6ms 4984 KiB
50 Futási hiba 4ms 4952 KiB