Submission #498544

#TimeUsernameProblemLanguageResultExecution timeMemory
498544IerusNice sequence (IZhO18_sequence)C++17
100 / 100
1168 ms68692 KiB
#include<bits/stdc++.h> /* #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; */ using namespace std; #pragma GCC optimize ("unroll-loops,Ofast,O3") #pragma GCC target("avx,avx2,fma") #define F first #define S second #define sz(x) (int)x.size() #define pb push_back #define eb emplace_back #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define NFS ios_base::sync_with_stdio(0) , cin.tie(0) , cout.tie(0) ; #define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) //#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> typedef long long ll; const int E = 1e6+777; const long long inf = 1e18+777; const int N = 5e5+777; const int MOD = 1e9+7; const bool I = 1; int n, m; bool used[N]; vector<int> ts, ans, g[N]; void dfs(int v){ used[v] = 1; for(auto to : g[v]){ if(!used[to]){ dfs(to); } } ts.pb(v); } void check(int R){ memset(used,0,sizeof(used)); for(int i = 0; i <= R; ++i){ if(i - n >= 0) g[i].pb(i-n); if(i + m <= R) g[i].pb(i+m); } for(int i = 0; i <= R; ++i){ if(!used[i]) dfs(i); } reverse(all(ts)); vector<int> pref(R+1, 0); ans.clear(); int cnt = 0; // cerr << "TS\n"; for(int x : ts){ // cerr << x << ' '; pref[x] = cnt++; } // cerr << '\n'; ts.clear(); for(int i = 1; i <= R; ++i){ ans.pb(pref[i] - pref[i-1]); } } int main(){auto solve=[&](){ cin >> n >> m; int len = n + m - 1 - __gcd(n, m); check(len); cout << sz(ans) << '\n'; for(auto it : ans){ cout << it << ' '; }cout << '\n'; for(int i = 0; i <= len; ++i){ g[i].clear(); } };NFS;int T=1;if(I)cin>>T;while(T--)solve();}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...