# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
305813 | 2020-09-24T01:54:00 Z | T0p_ | Exhibition (JOI19_ho_t2) | C++14 | 1 ms | 384 KB |
#include<bits/stdc++.h> using namespace std; struct picture { int s, v; bool operator < (const picture & o) const { return v < o.v; } }; picture p[100100]; int f[100100], arr[100100]; stack<int> stk; int main() { int n, m; scanf(" %d %d",&n,&m); for(int i=1 ; i<=n ; i++) scanf(" %d %d",&p[i].s,&p[i].v); for(int i=1 ; i<=m ; i++) scanf(" %d",&f[i]); sort(p+1, p+n+1); sort(f+1, f+m+1); stk.push(0); for(int i=1 ; i<=n ; i++) { int l = 1, r = m+1; while(l != r) { int mid = (l+r)>>1; (p[i].s <= f[mid]) ? r = mid : l = mid+1; } arr[i] = l; } int idx = 0, ans = 0; for(int i=n ; i>=1 ; i--) if(arr[i] != m+1) { idx = i; break ; } if(idx) { stk.push(m); ans = 1; for(int i=idx-1 ; i>=1 ; i--) if(arr[i] < stk.top()) { stk.push(stk.top()-1); ans++; } } printf("%d\n",ans); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Incorrect | 1 ms | 384 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Incorrect | 1 ms | 384 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 384 KB | Output is correct |
2 | Correct | 1 ms | 384 KB | Output is correct |
3 | Incorrect | 1 ms | 384 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |