# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1095009 | 2024-10-01T07:14:09 Z | alexander707070 | Toys (CEOI18_toy) | C++14 | 43 ms | 94804 KB |
#include<bits/stdc++.h> #define MAXN 2007 using namespace std; int n; vector<int> dels; vector<int> sums[MAXN][MAXN]; unordered_map<int,int> pos; vector<int> res; vector<int> ans; unordered_map<int,int> li; int tim; void ff(int d,int mins){ if(mins>d)return; if(!sums[d][mins].empty())return; ff(d,mins+1); if(mins+1<=d)sums[d][mins]=sums[d][mins+1]; else sums[d][mins]={dels[d]-1}; if(dels[d]%dels[mins]==0){ int x=pos[dels[d]/dels[mins]]; ff(x,mins); tim++; for(int i:sums[d][mins])li[i]=tim; for(int i:sums[x][mins]){ if(li[i+dels[mins]-1]==tim)continue; li[i+dels[mins]-1]=tim; sums[d][mins].push_back(i+dels[mins]-1); } if(mins>x and li[dels[x]-1+dels[mins]-1]!=tim){ sums[d][mins].push_back(dels[x]-1+dels[mins]-1); } } } int main(){ cin>>n; for(int i=1;i*i<=n;i++){ if(n%i!=0)continue; dels.push_back(i); if(i!=n/i)dels.push_back(n/i); } sort(dels.begin(),dels.end()); for(int i=0;i<dels.size();i++){ pos[dels[i]]=i; } ff(dels.size()-1,1); ans=sums[dels.size()-1][1]; sort(ans.begin(),ans.end()); cout<<ans.size()<<"\n"; for(int i:ans){ cout<<i<<" "; } cout<<"\n"; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 43 ms | 94804 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 43 ms | 94804 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 43 ms | 94804 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 43 ms | 94804 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 43 ms | 94804 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |