Submission #153185

#TimeUsernameProblemLanguageResultExecution timeMemory
153185nicolaalexandraToys (CEOI18_toy)C++14
79 / 100
5052 ms57864 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;

//ifstream cin ("date.in");
//ofstream cout ("date.out");

vector <int> sol,v;
set < pair<int,int> > s;
int x,nr,d;
void back (int x, int val){
    if (s.find(make_pair(x,val)) != s.end()) /// ajung in aceeasi stare
        return;
    s.insert(make_pair(x,val));
    v.push_back(x+val-1);
    /// vreau sa maresc nr de factori cu 1
    for (int d=2;d<=x/d;d++)
        if (x % d == 0)
            back (x/d,val+d-1);
}
int main (){

    cin>>x;

    back (x,0);
    sort (v.begin(),v.end());
    //sol.resize(unique(sol.begin(),sol.end())-sol.begin());
    sort (v.begin(),v.end());
    if (v.size())
        sol.push_back(v[0]);
    for (int i=1;i<v.size();i++)
        if (v[i] != v[i-1])
            sol.push_back(v[i]);

    cout<<sol.size()<<"\n";
    for (auto x:sol)
        cout<<x<<" ";

    return 0;
}

Compilation message (stderr)

toy.cpp: In function 'int main()':
toy.cpp:33:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=1;i<v.size();i++)
                  ~^~~~~~~~~
#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...