Submission #496047

#TimeUsernameProblemLanguageResultExecution timeMemory
496047mansurNice sequence (IZhO18_sequence)C++17
Compilation error
0 ms0 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> adj[N + 7], was(N + 7), ans, cur, tp; bool c; void dfs(int u, int len) { was[u] = 2; for (auto e: adj[u]) { if (e > len) continue; if (!was[e]) { dfs(e, len); }else if (was[e] == 2) c = 1; } 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--) { int n, m; cin >> n >> m; for (int i = 1; i <= N; i++) { if (i >= n) adj[i].pb(i - n); if (i >= m) adj[i - m].pb(i); } 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; for (int i = 0; i <= N; i++) adj[i].clear(); } }

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: In function 'bool can(int, int, int)':
sequence.cpp:60:3: error: 'pref' was not declared in this scope
   60 |   pref[e] = cnt++;
      |   ^~~~
sequence.cpp:63:10: error: 'pref' was not declared in this scope
   63 |   cur.pb(pref[i] - pref[i - 1]);
      |          ^~~~
sequence.cpp: At global scope:
sequence.cpp:68:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   68 | main() {
      | ^~~~