제출 #1331023

#제출 시각아이디문제언어결과실행 시간메모리
1331023boclobanchatToys (CEOI18_toy)C++20
79 / 100
5092 ms1932 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1444;
int divi[MAXN];
set<int> st;
void backtrack(int i,int n,int val,int ans)
{
	if(val==1)
	{
		st.insert(ans);
		return ;
	}
	for(int j=i;j<=n;j++) if(val%divi[j]==0) backtrack(j,n,val/divi[j],ans+divi[j]-1);
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    int cnt=0;
    for(int i=1;i*i<=n;i++) if(n%i==0)
    {
    	if(i*i!=n) divi[++cnt]=n/i;
    	divi[++cnt]=i;
	}
	sort(divi+1,divi+cnt+1);
	backtrack(2,cnt,n,0);
	cout<<st.size()<<"\n";
	for(auto v:st) cout<<v<<" ";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...