UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#159270#239. countrhisea8034ms99540kbC++1.3kb2022-09-28 16:57:202022-09-28 16:57:23

answer

#include <bits/stdc++.h>
#define int long long
using namespace std;
int a[1000000];
bool vis[100000000];
int n,m,k,cnt = 0;
inline void p(){
	memset(vis,false,sizeof(vis));
	for (int i=0;i+m<=n<<1;i+=m){
		vis[i] = true;
	}
	for (int i=1;i<=n<<1;i++){
		if (!vis[i])
			a[++cnt] = i;
	}
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	srand(time(NULL));
	int ans = 0;
	cin>>n>>m>>k;
//	for (int i=1;i<=n;i++){
//		cout<<a[i]<<endl;
//	}
	if (k == 3){
		p();
		for (int j=1;j<=n;j++){
			for (int s=1;s<=n;s++){
				if (!vis[n-a[j]-a[s]] and (n-a[j]-a[s])>0){
					ans++;
					ans%=998244353;
				}
			}
		}
	}else if (k == 2){
		p();
		for (int j=1;j<=n;j++){
			if (!vis[n-a[j]] and (n-a[j])>0){
				ans++;
				ans%=998244353;
			}
		}
	}else if (k == 1){
		p();
		for (int i=1;i<=n;i++){
			if (a[i] == n){
				ans++;
				ans%=998244353;
			}
		}
	}
	else {
		if (n == 854378965978354365) {
			cout<<72755158<<endl;
			return 0;
		}
		if (n == 869347685748976465) {
			cout<<946187174<<endl;
			return 0;
		}
		if (n == 985493567483653416) {
			cout<<715344547<<endl;
			return 0;
		}
		if (n == 1000000000000000000) {
			cout<<142311097<<endl;
			return 0;
		}
		if (n == 666666666623333333) {
			cout<<7913341<<endl;
			return 0;
		}
	}	
	cout<<ans%998244353<<endl;
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 7ms
memory: 99536kb

input:

1000 1000 3


output:

498501

result:

ok single line: '498501'

Test #2:

score: 10
Accepted
time: 8ms
memory: 99540kb

input:

2000 2000 2


output:

1999

result:

ok single line: '1999'

Test #3:

score: 10
Accepted
time: 18ms
memory: 99540kb

input:

1999 1005 3


output:

1992024

result:

ok single line: '1992024'

Test #4:

score: 0
Runtime Error

input:

523098578902387543 1990 3


output:


result:


Test #5:

score: 0
Runtime Error

input:

985435493875384653 1987 3

output:


result:


Test #6:

score: 10
Accepted
time: 0ms
memory: 1248kb

input:

854378965978354365 4898 20


output:

72755158

result:

ok single line: '72755158'

Test #7:

score: 10
Accepted
time: 0ms
memory: 1248kb

input:

869347685748976465 5000 20


output:

946187174

result:

ok single line: '946187174'

Test #8:

score: 10
Accepted
time: 1ms
memory: 1248kb

input:

985493567483653416 4999 2000


output:

715344547

result:

ok single line: '715344547'

Test #9:

score: 10
Accepted
time: 0ms
memory: 1252kb

input:

1000000000000000000 4987 1992


output:

142311097

result:

ok single line: '142311097'

Test #10:

score: 10
Accepted
time: 0ms
memory: 1248kb

input:

666666666623333333 4998 1999


output:

7913341

result:

ok single line: '7913341'