# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
466077 | 2021-08-17T20:37:28 Z | nickmet2004 | popa (BOI18_popa) | C++11 | 1 ms | 200 KB |
#include<bits/stdc++.h> #include "popa.h" using namespace std; /* int query(int a , int b , int l , int r){ int k =s[a]; for(int i = a+1; i<= b; ++i)k = __gcd(k , s[i]); int j = s[l]; for(int i = l + 1; i <= r; ++i)j = __gcd(j , s[i]); return k == j; } */ int solve(int n , int *Left , int *Right) { stack<int> st; int root = 0; memset(Left , -1 , sizeof(Left)); memset(Right , -1 , sizeof(Right)); st.push(0); for(int i =1; i < n; ++i){ while(st.size() && query(st.top() , i , i , i)){ Right[st.top()] = Left[i]; Left[i] = st.top(); st.pop(); } if(st.size()) Right[st.top()] = i; else root = i; } return root; } /* int main (){ int n; cin >> n; for(int i = 0; i< n; ++i)cin >> s[i]; memset(Left , -1 , sizeof(Left));memset(Right , -1 , sizeof(Right)); cout << solve(n)<<endl; for(int i = 0; i < n; ++i)cout << Left[i] << " " << Right[i] << endl; } */ ///20 80 40 ///40 80 20
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 0 ms | 200 KB | Execution killed with signal 13 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 1 ms | 200 KB | Execution killed with signal 13 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 1 ms | 200 KB | Execution killed with signal 13 |
2 | Halted | 0 ms | 0 KB | - |