Submission #1189134

#TimeUsernameProblemLanguageResultExecution timeMemory
1189134nguynCurtains (NOI23_curtains)C++20
100 / 100
616 ms61184 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define F first #define S second #define pb push_back #define pii pair<int,int> const int N = 5e5 + 5; int n, m, q; vector<int> vec[N]; vector<pii> ev[N]; int res[N]; int st[4 * N], lazy[4 * N]; void down(int id) { st[id * 2] = max(st[id * 2], lazy[id]); st[id * 2 + 1] = max(st[id * 2 + 1], lazy[id]); lazy[id * 2] = max(lazy[id * 2], lazy[id]); lazy[id * 2 + 1] = max(lazy[id * 2 + 1], lazy[id]); } void update(int id, int l, int r, int u, int v, int x) { if (u <= l && r <= v) { st[id] = max(x, st[id]); lazy[id] = max(x, lazy[id]); return; } down(id); int mid = (l + r) / 2; if (mid >= u) update(id * 2, l, mid, u, v, x); if (mid < v) update(id * 2 + 1, mid + 1, r, u, v, x); st[id] = min(st[id * 2], st[id * 2 + 1]); } int get(int id, int l, int r, int u, int v) { if (u <= l && r <= v) { return st[id]; } down(id); int mid = (l + r) / 2; if (v <= mid) return get(id * 2, l, mid, u, v); if (u > mid) return get(id * 2 + 1, mid + 1, r, u, v); return min(get(id * 2, l, mid, u, v), get(id * 2 + 1, mid + 1, r, u, v)); } signed main(){ ios_base::sync_with_stdio(false) ; cin.tie(0) ; cout.tie(0) ; if (fopen("INP.INP" ,"r")) { freopen("INP.INP" ,"r" , stdin) ; freopen("OUT.OUT" , "w" , stdout) ; } cin >> n >> m >> q; for (int i = 1; i <= m; i++) { int l, r; cin >> l >> r; vec[r].pb(l); } for (int i = 1; i <= q; i++) { int l, r; cin >> l >> r; ev[r].pb({l, i}); } for (int i = 1; i <= n; i++) { for (int j : vec[i]) { update(1, 1, n, j, i, j); } for (pii it : ev[i]) { // cout << get(1, 1, n, it.F, i) << endl; res[it.S] = (get(1, 1, n, it.F, i) >= it.F); } } for (int i = 1; i <= q; i++) { cout << (res[i] ? "YES\n" : "NO\n"); } }

Compilation message (stderr)

curtains.cpp: In function 'int main()':
curtains.cpp:53:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |         freopen("INP.INP" ,"r" , stdin) ;
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
curtains.cpp:54:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   54 |         freopen("OUT.OUT" , "w" , stdout) ;
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#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...