106262024-04-06 23:54:42111Tömbök előállításacpp17Futási hiba 52/100527ms5532 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;
}

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];
		}
	}
	x=mat_pow(x,N);
	cout<<x[0][K]<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva19ms2808 KiB
2Elfogadva26ms3072 KiB
3Elfogadva59ms3348 KiB
subtask210/10
4Elfogadva25ms3560 KiB
5Elfogadva25ms3512 KiB
6Elfogadva26ms3632 KiB
subtask310/10
7Elfogadva64ms3848 KiB
8Elfogadva87ms4396 KiB
9Elfogadva82ms4180 KiB
10Elfogadva109ms4220 KiB
11Elfogadva104ms4184 KiB
12Elfogadva104ms4408 KiB
13Elfogadva109ms4616 KiB
subtask47/7
14Elfogadva109ms4828 KiB
15Elfogadva115ms5088 KiB
16Elfogadva98ms5180 KiB
17Elfogadva70ms5032 KiB
18Elfogadva75ms5204 KiB
19Elfogadva97ms5052 KiB
20Elfogadva109ms4984 KiB
subtask50/8
21Futási hiba4ms4680 KiB
22Futási hiba3ms4656 KiB
23Futási hiba3ms4728 KiB
24Futási hiba3ms4712 KiB
25Futási hiba3ms4716 KiB
26Futási hiba3ms4820 KiB
27Futási hiba3ms4968 KiB
28Futási hiba3ms4824 KiB
29Futási hiba3ms4720 KiB
30Futási hiba3ms4788 KiB
subtask625/25
31Elfogadva476ms5244 KiB
32Elfogadva476ms5248 KiB
33Elfogadva527ms5248 KiB
34Elfogadva509ms5532 KiB
35Elfogadva245ms5372 KiB
36Elfogadva256ms5252 KiB
37Elfogadva476ms5256 KiB
38Elfogadva279ms5272 KiB
39Elfogadva284ms5276 KiB
40Elfogadva504ms5384 KiB
subtask70/40
41Futási hiba3ms4928 KiB
42Futási hiba4ms5020 KiB
43Futási hiba4ms4928 KiB
44Futási hiba4ms4928 KiB
45Futási hiba4ms4932 KiB
46Futási hiba4ms5024 KiB
47Futási hiba4ms4920 KiB
48Elfogadva307ms5380 KiB
49Futási hiba4ms5080 KiB
50Futási hiba4ms5032 KiB