(UPD: 2024-12-04 14:48 UTC) Judge is not working due to Cloudflare incident. (URL) We can do nothing about it, sorry. After the incident is resolved, we will grade all submissions.

Submission #1119723

#TimeUsernameProblemLanguageResultExecution timeMemory
1119723vjudge1Toys (CEOI18_toy)C++17
79 / 100
5034 ms55036 KiB
// made by Tima // 2025 will be a golden year... #include "bits/stdc++.h" #include <ext/pb_ds/assoc_container.hpp> #define ll long long #define pb push_back #define pf push_front #define ppb pop_back #define ppf pop_front // #define int long long #define F first #define S second #define all(x) (x).begin(), (x).end() #define pii pair<int,int> #define tpii pair <pair <int,int> , int> #define bruh cout << "NO\n" using namespace std; using namespace __gnu_pbds; const int N = 3e5 + 5; int mod = 1e9 + 7; // const int INF = 1e18; int n; vector <int> q,z; map <int , vector <int>> g; map <int,int> mp; map <int , set <int>> used; void calc(int x){ if(x == 1 || mp[x]) return; q.pb(x); mp[x] = 1; for(int i = 2 ; i * i <= x ; i++){ if(x % i == 0){ g[x].pb(i); calc(i) , calc(x / i); } } } // set <int> solve(int x){ // if(used[x].size()) return used[x]; // set <int> st; // z.pb(x); // st.insert(x - 1); // if(x == 1) return st; // for(auto i : g[x]){ // int f = i , s = x / i; // set <int> st1 = solve(f) , st2 = solve(s); // for(auto it : st1){ // for(auto ti : st2){ // st.insert(ti + it); // } // } // } // return used[x] = st; // } void Gold(){ cin >> n; q.pb(1); calc(n); sort(all(q)); for(auto x : q){ used[x].insert(x - 1); if(x == 1) continue; for(auto i : g[x]){ int f = i , s = x / i; set <int> st1 = used[f] , st2 = used[s]; for(auto it : st1){ for(auto ti : st2){ used[x].insert(ti + it); } } } } set <int> st = used[n]; cout << st.size() << '\n'; for(auto it : st){ cout << it << ' '; } } //https://codeforces.com/blog/entry/133289 signed main(/*Zhunussov Temirlan*/){ //freopen("txt.in","r",stdin);freopen("txt.out","w",stdout); ios_base::sync_with_stdio(0);cin.tie(0); srand(time(0)); int TT = 1; // cin >> TT; for(int i = 1 ; i <= TT ; i++){ //cout << "Case " << i << ": "; Gold(); } }
#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...