Submission #986011

#TimeUsernameProblemLanguageResultExecution timeMemory
986011raphaelpToys (CEOI18_toy)C++14
79 / 100
5008 ms108332 KiB
#include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; if (N == 1) { cout << 1 << '\n' << 0; return 0; } vector<int> div; for (int i = 2; i <= sqrt(N); i++) { if (N % i == 0) { div.push_back(i); if (i != N / i) div.push_back(N / i); } } div.push_back(N); sort(div.begin(), div.end()); vector<vector<int>> pos(div.size()); for (int i = 0; i < div.size(); i++) pos[i].push_back(div[i] - 1); for (int i = 0; i < div.size(); i++) { for (int j = 0; div[j] <= sqrt(div[i]); j++) { int x = lower_bound(div.begin(), div.end(), div[i] / div[j]) - div.begin(); if (div[j] * div[x] != div[i]) continue; for (int k = 0; k < pos[j].size(); k++) { for (int l = 0; l < pos[x].size(); l++) { pos[i].push_back(pos[j][k] + pos[x][l]); } } } sort(pos[i].begin(), pos[i].end()); vector<int> temp = {pos[i][0]}; for (int j = 1; j < pos[i].size(); j++) if (pos[i][j] != pos[i][j - 1]) temp.push_back(pos[i][j]); swap(temp, pos[i]); } cout << pos[pos.size() - 1].size() << '\n'; for (int i = 0; i < pos[pos.size() - 1].size(); i++) { cout << pos[pos.size() - 1][i] << ' '; } }

Compilation message (stderr)

toy.cpp: In function 'int main()':
toy.cpp:26:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     for (int i = 0; i < div.size(); i++)
      |                     ~~^~~~~~~~~~~~
toy.cpp:28:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for (int i = 0; i < div.size(); i++)
      |                     ~~^~~~~~~~~~~~
toy.cpp:35:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |             for (int k = 0; k < pos[j].size(); k++)
      |                             ~~^~~~~~~~~~~~~~~
toy.cpp:37:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |                 for (int l = 0; l < pos[x].size(); l++)
      |                                 ~~^~~~~~~~~~~~~~~
toy.cpp:45:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |         for (int j = 1; j < pos[i].size(); j++)
      |                         ~~^~~~~~~~~~~~~~~
toy.cpp:51:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |     for (int i = 0; i < pos[pos.size() - 1].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...