Submission #1352319

#TimeUsernameProblemLanguageResultExecution timeMemory
1352319truongthaiduonglaptrinhToys (CEOI18_toy)C++20
100 / 100
1398 ms86748 KiB
// duonglaptrinh

# include <bits/stdc++.h>
using namespace std;

const int N = 1e5+5;

map<int, set<int>> luu;

void trau(int n) {
    if(luu[n].size()) {
        return;
    }
    luu[n].insert(n - 1);
    for(int i = 2; i * i <= n; i++) {
        if(n % i == 0) {
            int j = n / i;
            trau(i);
            for(int x : luu[i]) {
                luu[n].insert(x + j - 1);
            }
            if(j != i) {
                trau(j);
                for(int x : luu[j]) {
                    luu[n].insert(x + i - 1);
                }
            }
        }
    }
}

int n;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);


    cin>>n;

    luu[1].insert(0);

    trau(n);

    cout<<luu[n].size()<<"\n";
    for(int x : luu[n]) {
        cout<<x<<" ";
    }

    return 0;
}
#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...