Submission #986013

#TimeUsernameProblemLanguageResultExecution timeMemory
986013raphaelpToys (CEOI18_toy)C++14
79 / 100
5032 ms109416 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; unordered_map<int, int> M; 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()); for (int i = 0; i < div.size(); i++) M[div[i]] = i; 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++) { if (div[i] % div[j] != 0) continue; if ((N % (div[i] / div[j])) != 0) continue; int x = M[div[i] / div[j]]; 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:29:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |     for (int i = 0; i < div.size(); i++)
      |                     ~~^~~~~~~~~~~~
toy.cpp:31:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |     for (int i = 0; i < div.size(); i++)
      |                     ~~^~~~~~~~~~~~
toy.cpp:40:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |             for (int k = 0; k < pos[j].size(); k++)
      |                             ~~^~~~~~~~~~~~~~~
toy.cpp:42:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |                 for (int l = 0; l < pos[x].size(); l++)
      |                                 ~~^~~~~~~~~~~~~~~
toy.cpp:50:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |         for (int j = 1; j < pos[i].size(); j++)
      |                         ~~^~~~~~~~~~~~~~~
toy.cpp:56:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |     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...