제출 #1231472

#제출 시각아이디문제언어결과실행 시간메모리
1231472omsincoconutEvent Hopping (BOI22_events)C++17
0 / 100
36 ms3400 KiB
#include <bits/stdc++.h> using namespace std; const int INF = 1e9; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, Q; cin >> N >> Q; vector<int> S(N+1), E(N+1); for (int i = 1; i <= N; i++) cin >> S[i] >> E[i]; int ord[N+1]; iota(ord+1, ord+N+1, 1); sort(ord+1, ord+N+1, [&E, &S](int a, int b) {return (S[a] < S[b]) || (S[a] == S[b] && E[a] < E[b]);}); int iord[N+1]; for (int i = 1; i <= N; i++) iord[ord[i]] = i; int qc[N+1]; qc[1] = 0; for (int i = 2; i <= N; i++) { qc[i] = qc[i-1] + (S[ord[i]] <= E[ord[i-1]] && E[ord[i-1]] <= E[ord[i]]); } while (Q--) { int s, e; cin >> s >> e; int is = iord[s], ie = iord[e]; if (s == e) cout << 0 << "\n"; else if (S[e] <= E[s] && E[s] <= E[e]) cout << 1 << "\n"; else if (is > ie) cout << "impossible\n"; else if (qc[ie] - qc[is] < ie-is) cout << "impossible\n"; else cout << ie-is << "\n"; } return 0; } /* 5 2 1 3 2 4 4 7 7 9 3 7 1 4 3 2 */ /* 8 5 1 2 3 4 1 5 6 7 5 10 10 20 15 20 999999999 1000000000 1 6 1 7 2 4 3 3 5 8 */ /* 3 9 1 2 2 3 3 4 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...