Submission #496057

#TimeUsernameProblemLanguageResultExecution timeMemory
496057mansurNice sequence (IZhO18_sequence)C++17
100 / 100
1719 ms52548 KiB
#include<bits/stdc++.h> #pragma optimize ("g",on) #pragma GCC optimize ("inline") #pragma GCC optimize ("Ofast") #pragma GCC optimize ("unroll-loops") #pragma GCC optimize ("03") #pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,avx2,mmx,fma,avx,tune=native") #pragma comment(linker, "/stack:200000000") //01001101 01100001 01101011 01101000 01100001 01100111 01100001 01111001 using namespace std; #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define ll long long #define pb push_back #define sz(a) a.size() #define nl '\n' #define popb pop_back() #define ld double #define ull unsigned long long #define ff first #define ss second #define fix fixed << setprecision #define pii pair<int, int> #define E exit (0) const int inf = 1e6, N = 4e5 + 1, mod = 998244353; vector<pii> dir = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}}; vector<int> was(N + 7), pref(N + 7), ans, cur, tp; int n, m; bool c; void dfs(int u, int len) { was[u] = 2; if (u - n >= 0) { if (was[u - n] == 2) c = 1; else if (!was[u - n]) dfs(u - n, len); } if (u + m <= len) { if (was[u + m] == 2) c = 1; else if (!was[u + m]) dfs(u + m, len); } was[u] = 1; tp.pb(u); } bool can(int len, int n, int m) { for (int i = 0; i <= len; i++) { if (!was[i]) { dfs(i, len); } } if (c) return 0; reverse(all(tp)); int cnt = 0; for (auto e: tp) { pref[e] = cnt++; } for (int i = 1; i <= len; i++) { cur.pb(pref[i] - pref[i - 1]); } return 1; } main() { //freopen("cowrect.in", "r", stdin); //freopen("cowrect.out", "w", stdout); ios_base::sync_with_stdio(NULL); cin.tie(NULL); int t; cin >> t; while (t--) { cin >> n >> m; int l = 1, r = N; vector<int> ans; while (l <= r) { int mid = (l + r) / 2; c = 0; tp.clear(); cur.clear(); for (int i = 0; i <= mid; i++) { was[i] = 0; } if (can(mid, n, m)) { ans = cur; l = mid + 1; }else { r = mid - 1; } } cout << sz(ans) << nl; for (auto e: ans) cout << e << ' '; cout << nl; } }

Compilation message (stderr)

sequence.cpp:3: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    3 | #pragma optimize ("g",on)
      | 
sequence.cpp:9: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
    9 | #pragma comment(linker, "/stack:200000000")
      | 
sequence.cpp:72:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   72 | 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...