比赛 新年快乐 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 收益 最终得分 100
用户昵称 zhyn 运行时间 5.347 s
代码语言 C++ 内存使用 63.44 MiB
提交时间 2026-02-13 10:19:37
显示代码纯文本
//HXF真好   竟然模一个(i-1) 
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define maxn 4000005

int n,k;
int f[maxn];
int vis[maxn];
ll ans=0;
ll w[maxn],val[maxn],a[maxn];
int sum=0;


bool cmp(ll x,ll y){
	return x>y;
}

void solv(){
	
	for(int i=1;i<=n;i++){
		val[i]=w[i];
	} 
	
	for(int i=n;i>=2;i--){
		val[f[i]]=max(val[f[i]],w[f[i]]+val[i]);
	} 
	
	for(int i=n;i>=1;i--){
		if(i>1&&vis[f[i]]==0&&(val[f[i]]==val[i]+w[f[i]])){
			vis[f[i]]=i;
		}
		else{
			a[++sum]=val[i];
		}
	}
	
	sort(a+1,a+1+sum,cmp);
	sum=min(sum,k);
	for(int i=1;i<=sum;i++){
		ans+=a[i];
	} 
}



int main(){
	
	freopen("x.in","r",stdin);
	freopen("x.out","w",stdout);
	
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	cin>>n>>k>>w[1];
	
	f[1]=0;
	for(int i=2;i<=n;i++){
		w[i]=(w[i-1]*23333333+6666666)%1000000007;
		f[i]=(w[i]^23333333)%(i-1)+1;
	}
	
	solv();
	cout<<ans;
	
	return 0;
}