Submission #365393

#TimeUsernameProblemLanguageResultExecution timeMemory
365393kostia244popa (BOI18_popa)C++17
Compilation error
0 ms0 KiB
#pragma GCC optimize("Ofast,unroll-loops") #pragma GCC target("avx,avx2,sse,sse2") #include<bits/stdc++.h> #define all(x) begin(x), end(x) using namespace std; using ll = long long; namespace local { int ar[10010], qc = 0; int query(int a, int b, int c, int d) { qc++; int x = 0, y = 0; for(;a<=b;a++) x = __gcd(x, ar[a]); for(;c<=d;c++) y = __gcd(y, ar[c]); return x==y; } }; #ifndef EVAL using namespace local; #endif int solve(int n, int *L, int *R) { vector<int> st; int rt = -1; vector<int> start(n); for(int i = 0; i < n; i++) L[i] = R[i] = -1; for(int i = 0; i < n; i++) { while(st.size() && !query(start[st.back()], i, st.back(), st.back())) st.pop_back(); if(st.empty()) { if(rt != -1) L[i] = rt; rt = i; } else { R[st.back()] = i; st.pop_back(); } for(auto i : st) cout << i << " "; cout << endl; st.push_back(i); } return rt; } #ifndef EVAL int main() { cin.tie(0)->sync_with_stdio(0); //multitest([&](){}); int n; cin >> n; for(int i = 1; i <= n; i++) cin >> ar[i]; vector<int> L(n), R(n); cout << solve(n, L.data(), R.data()) << endl; for(int i = 0; i < n; i++) cout << L[i] << " " << R[i] << '\n'; cout << " :: " << qc << endl; } #endif

Compilation message (stderr)

popa.cpp: In function 'int solve(int, int*, int*)':
popa.cpp:28:23: error: 'query' was not declared in this scope; did you mean 'local::query'?
   28 |   while(st.size() && !query(start[st.back()], i, st.back(), st.back())) st.pop_back();
      |                       ^~~~~
      |                       local::query
popa.cpp:10:6: note: 'local::query' declared here
   10 |  int query(int a, int b, int c, int d) {
      |      ^~~~~
popa.cpp:36:3: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   36 |   for(auto i : st) cout << i << " "; cout << endl;
      |   ^~~
popa.cpp:36:38: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   36 |   for(auto i : st) cout << i << " "; cout << endl;
      |                                      ^~~~