#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx,avx2,sse,sse2")
#ifdef EVAL
#include"popa.h"
#endif
#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 fml(int l, int r, int *L, int *R) {
if(l >= r) return -1;
if(l+1 == r) return l;
for(int x = l; x < r; x++)
if(query(l, r-1, x, x)) {
L[x] = fml(l, x, L, R);
R[x] = fml(x+1, r, L, R);
return x;
}
}
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;
return fml(0, n, L, R);
}
#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
popa.cpp: In function 'int solve(int, int*, int*)':
popa.cpp:38:6: warning: unused variable 'rt' [-Wunused-variable]
38 | int rt = -1;
| ^~
popa.cpp: In function 'int fml(int, int, int*, int*)':
popa.cpp:34:1: warning: control reaches end of non-void function [-Wreturn-type]
34 | }
| ^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
73 ms |
380 KB |
Output is correct |
2 |
Correct |
114 ms |
364 KB |
Output is correct |
3 |
Correct |
18 ms |
384 KB |
Output is correct |
4 |
Correct |
95 ms |
364 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
285 ms |
392 KB |
too many queries |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
19 ms |
364 KB |
too many queries |
2 |
Halted |
0 ms |
0 KB |
- |