社区讨论

MnZn 20分求助,求hack

P7947 [✗✓OI R1] 铝锤制作参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lobccpv2
此快照首次捕获于
2023/10/29 18:41
2 年前
此快照最后确认于
2023/11/04 00:27
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int cnt;
int tmp[150];
int main()
{
	int n,k;
   cin>>n>>k;
   int n_sqrt = sqrt(n);
   for(int i=2;i<=n_sqrt;i++)
   {
       if(n%i==0)//
       {
           while(n%i==0)
           {
                n/=i;
                tmp[++cnt]=i;
           }
       }
   }
   if(n!=1){
   	tmp[1]=1;
   	tmp[2]=n;
   	cnt=2;
   }
   int sum=0;
   for(int i=1;i<=cnt;i++)
   		sum+=tmp[i];
   	if(sum>k){
   		cout<<-1<<endl;
   		return 0;
	}
	if(sum==k){
		//cout<<1<<endl;
	//	cout<<cnt<<endl;
		for(int i=1;i<=cnt;i++)
			cout<<tmp[i]<<" ";
		return 0;
	}
	if(sum<k){
		//cout<<cnt<<endl;
		//cout<<sum<<endl;
		//cout<<k-sum+1<<endl;
		cout<<cnt+(k-sum+1)-1<<endl;
		for(int i=1;i<=cnt;i++)
			cout<<tmp[i]<<" ";
		for(int i=sum+1;i<=k;i++)
			cout<<1<<" ";
	}
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...