Submission #1068416

#TimeUsernameProblemLanguageResultExecution timeMemory
1068416cpdreamerToys (CEOI18_toy)C++14
39 / 100
33 ms996 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <utility> #define V vector #define F first #define S second #define P pair #define pb push_back #define all(v) v.begin(),v.end() typedef long long ll; using namespace __gnu_pbds; using namespace std; typedef tree<int,null_type,less<int>,rb_tree_tag, tree_order_statistics_node_update> indexed_set; static int called = 0;const long long MOD = 1e9+7; // 1e9 + 7 void file(){ freopen("input.txt.txt","r",stdin); freopen("output.txt.txt","w",stdout); } int binary_expo(int a,int b,int m){ int res=1; while(b){ if(b%2==1){res=(res*a)%m;b--;} b/=2; a=(a*a)%m; } return res; } bool prime(ll p){ for(int i=0;i<100;i++) { ll b = rand()%p; if(b!=0) { ll res = binary_expo(b, p, p); if (res != b % p) return false; } } return true; } void solve() { int n; cin>>n; if(n==1){ cout<<1<<endl; cout<<0<<endl; return; } V<int>primes; V<int>factor; if(2<=n) primes.pb(2); if(3<=n) primes.pb(3); for(int i=1;(6*i)-1<=n;i++){ if((6*i)-1<=n) { if (prime((6*i)-1)) { primes.pb((6*i)-1); } } if((6*i)+1<=n) { if (prime((6*i)+1)) { primes.pb((6*i)+1); } } } int p=0; while(n>1){ if(n%primes[p]==0){ n/=primes[p]; factor.pb(primes[p]); } else p++; } set<V<int>>st; st.insert({factor[0]}); for(int i=1;i<factor.size();i++) { set<V<int>>st1; for (auto &u: st) { for (int j=0;j<u.size();j++) { V<int>v=u; v[j]*=factor[i]; sort(all(v)); st1.insert(v); } V<int>v=u; v.pb(factor[i]); sort(all(v)); st1.insert(v); } st=st1; } V<int>ans; for(auto u:st) { int c = 0; for (auto x: u) { c += x - 1; } ans.pb(c); } sort(all(ans)); auto it=unique(all(ans)); ans.resize(distance(ans.begin(),it)); cout<<ans.size()<<endl; for(auto u:ans) cout<<u<<" "; cout<<endl; } int main(){ //file(); solve(); }

Compilation message (stderr)

toy.cpp: In function 'void solve()':
toy.cpp:78:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   78 |     for(int i=1;i<factor.size();i++) {
      |                 ~^~~~~~~~~~~~~~
toy.cpp:81:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   81 |             for (int j=0;j<u.size();j++) {
      |                          ~^~~~~~~~~
toy.cpp: In function 'void file()':
toy.cpp:18:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |     freopen("input.txt.txt","r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
toy.cpp:19:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |     freopen("output.txt.txt","w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
toy.cpp: At global scope:
toy.cpp:15:12: warning: 'called' defined but not used [-Wunused-variable]
   15 | static int called = 0;const long long MOD = 1e9+7; // 1e9 + 7
      |            ^~~~~~
#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...