Submission #536827

#TimeUsernameProblemLanguageResultExecution timeMemory
536827jamezzzToys (CEOI18_toy)C++17
59 / 100
3719 ms262144 KiB
#include <bits/stdc++.h> using namespace std; #define sf scanf #define pf printf #define pb push_back #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() #define disc(x) sort(all(x));x.resize(unique(all(x))-x.begin()); int n,m,cur=1,vis[5000]; vector<int> p,f,nums[5000]; unordered_map<int,int> idx; void gen_fac(int i){ if(i==sz(p)){ if(cur!=1)f.pb(cur); return; } gen_fac(i+1); cur*=p[i]; gen_fac(i+1); cur/=p[i]; } int main(){ sf("%d",&n); if(n==1)pf("1\n0\n"),exit(0); int _n=n; for(int i=2;i*i<=n;++i){ while(n%i==0)p.pb(i),n/=i; } if(n!=1)p.pb(n); n=_n; gen_fac(0); disc(f); m=sz(f); for(int i=0;i<m;++i){ idx[f[i]]=i; } for(int i=0;i<m;++i){ int x=f[i]; for(int j=0;j<i;++j){ if(x%f[j]==0){ int t=idx[x/f[j]]; for(int k:nums[t]){ nums[i].pb(k+f[j]-1); } disc(nums[i]); } } nums[i].pb(x-1); disc(nums[i]); } pf("%d\n",sz(nums[m-1])); for(int i:nums[m-1])pf("%d ",i); pf("\n"); }

Compilation message (stderr)

toy.cpp: In function 'int main()':
toy.cpp:27:4: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |  sf("%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...