Submission #584988

#TimeUsernameProblemLanguageResultExecution timeMemory
584988hibikiToys (CEOI18_toy)C++11
39 / 100
5059 ms6460 KiB
#include<bits/stdc++.h>
using namespace std;

#define pb push_back
#define sz(x) (int)x.size()

int n;
set<int> sum[10005], ans;

int main()
{
    sum[1].insert(0);
    for(int i = 2; i < 10005; i++)
    {
        for(int j = 1; j * j <= i; j++)
        {
            if(i % j == 0)
            {
                int a = j;
                int b = i / j;
                for(auto _: sum[b])
                {
                    sum[i].insert(a - 1 + _);
                }
                for(auto _: sum[a])
                {
                    sum[i].insert(b - 1 + _);
                }
            }
        }
    }
    // for(int i = 1; i < 10; i++)
    // {
    //     printf("--%d--\n",i);
    //     for(auto val: sum[i])
    //         printf("%d ",val);
    //     printf("\n");
    // }
    scanf("%d",&n);
    for(int j = 1; j * j <= n; j++)
    {
        if(n % j == 0)
        {
            int a = j;
            int b = n / j;
            for(auto _: sum[b])
            {
                ans.insert(a - 1 + _);
            }
            for(auto _: sum[a])
            {
                ans.insert(b - 1 + _);
            }
        }
    }
    printf("%d\n",sz(ans));
    for(auto _: ans)
        printf("%d ",_);
    printf("\n");
    return 0;
}

Compilation message (stderr)

toy.cpp: In function 'int main()':
toy.cpp:39:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
#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...