比赛 ZLXSCDay1 评测结果 AAWWWWWWWW
题目名称 PERICA 最终得分 20
用户昵称 dududu 运行时间 0.467 s
代码语言 C++ 内存使用 1.84 MiB
提交时间 2016-03-18 21:22:00
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

#define LL long long
#define KN 100010
#define P 1000000007
LL N,K;
LL data[KN];
LL cacu[KN];

LL qcheng(LL x,LL y)
{
	LL ans=0;
	while(x)
	{
		if(x&1) ans=(ans+y)%P;
		y=(y+y)%P;
		x>>=1;
	}
	return ans;
}

void solve()
{
	cacu[K]=1;
	LL ans=qcheng(cacu[K],data[K]);

	for(int i=K+1;i<=N;i++)
	{
		cacu[i]=qcheng(cacu[i-1],i-1)/(i-K)%P;
		ans=(ans+qcheng(data[i],cacu[i]))%P;
	}
	cout<<ans<<endl;
}

void init()
{
	cin>>N>>K;
	for(int i=1;i<=N;i++) scanf("%lld",&data[i]);
	sort(data+1,data+1+N);
}

void work()
{
	init();
	solve();
}

int main()
{
	freopen("perica.in","r",stdin);
	freopen("perica.out","w",stdout);
	work();
	return 0;
}