Submission #69499767
Source Code Expand
/*
~~ Alguma parte/frase foda de um livro/mangá para dar sorte ~~
Uma vez eu gritei, gradualmente, perdi minha voz.
Uma vez eu chorei, gradualmente, perdi minhas lágrimas.
Uma vez eu sofri, gradualmente, me tornei capaz de suportar tudo.
Uma vez me alegrei, gradualmente, me tornei indiferente ao mundo.
E agora, tudo o que me resta é um rosto sem expressão,
meu olhar é tão firme quanto um monólito,
apenas a perseverança permanece no meu coração.
Este sou eu, um personagem insignificante,
Fang Yuan — A Perseverança.
*/
#if defined(LOCAL) or not defined(LUOGU)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast,unroll-loops")
#endif
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
template <class T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <typename T>
ostream& operator<<(ostream &os, const vector<T> &v) {
os << "[";
for (size_t i = 0; i < v.size(); ++i) {
os << v[i] << (i + 1 == v.size() ? "" : ", ");
}
os << "]";
return os;
}
void dbg_out() { cerr << endl; }
template <typename Head, typename... Tail>
void dbg_out(Head H, Tail... T)
{
cerr << ' ' << H;
dbg_out(T...);
}
#define dbg(...) cerr << "(" << _VA_ARGS_ << "):", dbg_out(_VA_ARGS_), cerr << endl
#define int long long
#define IOS \
ios_base::sync_with_stdio(false); \
cin.tie(0)
#define TXTIO \
freopen("entrada.in", "r", stdin);\
freopen("saida.out", "w", stdout)
#define pb push_back
#define all(v) v.begin(), v.end()
#define f first
#define s second
#define Unique(v) \
sort(all(v)); \
v.erase(unique(all(v)), v.end()); \
v.shrink_to_fit()
#define sz(v) ((int)v.size())
#define sor(x) sort(all(x))
#define ft front()
#define bk back()
#define endl "\n"
#define rep(i, a, b) for (int i = a; i < (b); ++i)
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
typedef vector<double> vd;
typedef vector<vd> vvd;
typedef vector<vvd> vvvd;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<vvi> vvvi;
typedef long long ll;
typedef double db;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<int, pii> piii;
typedef vector<pii> vii;
typedef vector<piii> viii;
typedef tuple<int, int, int> tiii;
const int MAXN = 2e5 + 5;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3fll;
const int mod = 1e9 + 7;
const int LOGN = 21;
struct SegTree {
int n, base, neutral;
vector<int> st;
function<int(int,int)> merge;
void init(int N, int neutral_, function<int(int,int)> merge_) {
n = N;
neutral = neutral_;
merge = std::move(merge_);
base = 1;
while (base < n) base <<= 1;
st.assign(2 * base, neutral);
}
// ponto 1-indexado
void update(int p, int v) {
int i = p + base - 1;
st[i] = v;
for (i >>= 1; i; i >>= 1) {
st[i] = merge(st[i << 1], st[i << 1 | 1]);
}
}
// consulta em [l, r] 1-indexado
int query(int l, int r) {
if (l > r) return neutral;
int L = l + base - 1, R = r + base - 1;
int ansL = neutral, ansR = neutral;
while (L <= R) {
if (L & 1) ansL = merge(ansL, st[L++]);
if (!(R & 1)) ansR = merge(st[R--], ansR);
L >>= 1; R >>= 1;
}
return merge(ansL, ansR);
}
};
void solve()
{
int n, q; cin >> n >> q;
SegTree stmax;
stmax.init(n, -LINF, [](int a, int b) { return max(a, b); });
SegTree stmin;
stmin.init(n, LINF, [](int a, int b) { return min(a, b); });
rep(i,0,q){
int a, b; cin >> a >> b;
bool ok = false;
if(a+1 <= b - 1){
int mx = stmax.query(a+1, b-1);
int mn = stmin.query(a+1, b-1);
if(mx > b || mn < a) {
ok = true;
}
}
if(ok) {
cout << "No" << endl;
} else {
cout << "Yes" << endl;
stmax.update(a, b);
stmin.update(b, a);
}
}
}
int32_t main()
{
IOS;
int tt;
tt = 1;
while (tt --> 0)
solve();
return 0;
}
Submission Info
| Submission Time |
|
| Task |
F - Adding Chords |
| User |
Marcux777 |
| Language |
C++ 20 (gcc 12.2) |
| Score |
525 |
| Code Size |
4637 Byte |
| Status |
AC |
| Exec Time |
199 ms |
| Memory |
35884 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
525 / 525 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt, sample_02.txt |
| All |
min.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, sample_01.txt, sample_02.txt |
| Case Name |
Status |
Exec Time |
Memory |
| min.txt |
AC |
1 ms |
3392 KiB |
| random_01.txt |
AC |
154 ms |
35692 KiB |
| random_02.txt |
AC |
55 ms |
35796 KiB |
| random_03.txt |
AC |
149 ms |
35792 KiB |
| random_04.txt |
AC |
108 ms |
35792 KiB |
| random_05.txt |
AC |
153 ms |
35780 KiB |
| random_06.txt |
AC |
94 ms |
35788 KiB |
| random_07.txt |
AC |
150 ms |
35812 KiB |
| random_08.txt |
AC |
117 ms |
35824 KiB |
| random_09.txt |
AC |
83 ms |
35736 KiB |
| random_10.txt |
AC |
17 ms |
35780 KiB |
| random_11.txt |
AC |
81 ms |
35748 KiB |
| random_12.txt |
AC |
46 ms |
35828 KiB |
| random_13.txt |
AC |
109 ms |
35740 KiB |
| random_14.txt |
AC |
90 ms |
35812 KiB |
| random_15.txt |
AC |
106 ms |
35824 KiB |
| random_16.txt |
AC |
67 ms |
19356 KiB |
| random_17.txt |
AC |
85 ms |
35724 KiB |
| random_18.txt |
AC |
85 ms |
35728 KiB |
| random_19.txt |
AC |
120 ms |
35824 KiB |
| random_20.txt |
AC |
147 ms |
35736 KiB |
| random_21.txt |
AC |
125 ms |
35884 KiB |
| random_22.txt |
AC |
144 ms |
35880 KiB |
| random_23.txt |
AC |
114 ms |
35724 KiB |
| random_24.txt |
AC |
146 ms |
35720 KiB |
| random_25.txt |
AC |
113 ms |
35816 KiB |
| random_26.txt |
AC |
199 ms |
35812 KiB |
| random_27.txt |
AC |
196 ms |
35816 KiB |
| random_28.txt |
AC |
110 ms |
35712 KiB |
| random_29.txt |
AC |
111 ms |
35816 KiB |
| random_30.txt |
AC |
149 ms |
35720 KiB |
| random_31.txt |
AC |
147 ms |
35720 KiB |
| sample_01.txt |
AC |
1 ms |
3332 KiB |
| sample_02.txt |
AC |
12 ms |
35744 KiB |