Submission #89409

#TimeUsernameProblemLanguageResultExecution timeMemory
89409nicksonaNice sequence (IZhO18_sequence)C++14
76 / 100
2028 ms66468 KiB
#include<bits/stdc++.h> #define ll long long #define pb push_back using namespace std; int n,m; int t; int M=0; vector <int> v[400001]; int mas[400001]; int fix[400001],nmas[1000001]; void top_sort (int u){ fix[u]=1; for (int i=0;i<v[u].size();i++){ int node=v[u][i]; if (fix[node]==0) top_sort(node); } mas[u]=++M; } void solve (int sz){ for (int i=0;i<=sz;i++){ if (i+n<=sz){ v[i].pb(i+n); } if (i+m<=sz){ v[i+m].pb(i); } } for (int i=0;i<=sz;i++){ if (fix[i]==0){ top_sort(i); } } for (int i=0;i<=sz;i++){ nmas[i]=mas[i]-mas[i-1]; } for (int i=0;i<=sz;i++){ fix[i]=0; v[i].clear(); } } int gcd(int a,int b){ if (a%b==0){ return b; } else{ return gcd(b,a%b); } } main () { ios::sync_with_stdio(false); cin>>t; while (t--){ cin>>n>>m; int ans=m+n-gcd(n,m)-1; M=0; solve(ans); cout<<ans<<endl; for (int i=1;i<=ans;i++){ cout<<nmas[i]<<" "; } cout<<endl; } return 0; } /* 1 2 4 _ _ _ _ | \ | | (_) | | | \| | _ ___ | | __ ___ ___ _ __ __ _ | . ` | | | / __| | |/ / / __| / _ \ | '_ \ / _` | | |\ | | | | (__ | < \__ \ | (_) | | | | | | (_| | |_| \_| |_| \___| |_|\_\ |___/ \___/ |_| |_| \__,_| */

Compilation message (stderr)

sequence.cpp: In function 'void top_sort(int)':
sequence.cpp:14:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i=0;i<v[u].size();i++){
               ~^~~~~~~~~~~~
sequence.cpp: At global scope:
sequence.cpp:54:7: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main () {
       ^
#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...