求问RE(可能)原因
查看原帖
求问RE(可能)原因
73994
光与影皆寂寞楼主2020/12/25 14:15

第五个点RE了

#include<bits/stdc++.h>
#define Mod 1000000007
using namespace std;
long long n,x;
long long a[10005];
long long now=0,head=1;
long long deal(){
	long long re=a[head]-now;
//	cout<<"# "<<re<<endl;
	now=a[head];
	long long cnt=0;
	while(now>=a[head]&&head<=n){
		cnt++;
		head++;
	}
//	cout<<cnt<<" "<<head<<endl;
//	cout<<cnt<<endl;
	long long maxc=0;
	while(cnt%x==0&&cnt>0){
		maxc++;
		cnt/=x;
	}
	for(int i=1;i<=cnt;i++){
		head--;
		a[head]=maxc+now;
	}
	sort(a+head,a+n+1);
	return re;
}
long long fpow(long long u,long long v){
	long long tot=1;
	while(v){
		if(v&1){
			tot*=u;
			tot%=Mod;
		}
		u*=u;
		u%=Mod;
		v>>=1;
	}
	return tot%Mod;
}
int main(){
	cin>>n>>x;
	long long maxn=0;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		maxn+=a[i];
	}
	for(int i=1;i<=n;i++){
		a[i]=maxn-a[i];
	}
	sort(a+1,a+n+1);
//	for(int i=1;i<=n;i++){
//		cout<<a[i]<<" ";
//	}
//	cout<<endl;
	while(a[head]==0&&head<=n)head++;
	long long ans=0;
	while(1){
		long long rec=deal();
		if(rec==0)break;
		ans+=rec;
//		cout<<"@ : "<<ans<<" "<<rec<<" "<<head<<endl;
//		for(int i=1;i<=n;i++){
//			cout<<a[i]<<" ";
//		}
//		cout<<endl;
	}
	cout<<fpow(x,ans)<<endl;
} 
  
2020/12/25 14:15
加载中...