给出 n 个数,给出数 q,在数组 a[] 中,如果 a[i] 不能被 q 整除,那么结束游戏
如果可以被 q 整除 ,那么在数组后面添加 q 个 a[i]/q ,最后输出数组的和
按照题意模拟即可水过去,时间复杂度 O(n+nlogn)(大概)
const int N=1e5+5;
int n,m;
int i,j,k;
ll a[N];
vector<pll> v;
signed main()
{
IOS;
rush(){
cin>>n>>m;
v.clear();
for(int i=1;i<=n;i++){
ll x;
cin>>x;
v.pb(mp(x,1));
}
for(int i=0;i<v.size();i++){
if(v[i].fr%m) break;
v.pb(mp(v[i].fr/m,m*v[i].sc));
}
ll ans=0;
for(int i=0;i<v.size();i++){
ans+=v[i].fr*v[i].sc;
}
cout<<ans<<endl;
}
//PAUSE;
return 0;
}