From 5513fe470d5ae11178ff52add90589dbdb122555 Mon Sep 17 00:00:00 2001 From: oncsr Date: Thu, 2 Oct 2025 16:42:31 +0900 Subject: [PATCH] =?UTF-8?q?[20251002]=20BOJ=20/=20P2=20/=20=EC=88=98?= =?UTF-8?q?=EC=97=B4=EA=B3=BC=20=EC=BF=BC=EB=A6=AC=205=20/=20=EA=B6=8C?= =?UTF-8?q?=ED=98=81=EC=A4=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...352\263\274 \354\277\274\353\246\254 5.md" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "khj20006/202510/02 BOJ P2 \354\210\230\354\227\264\352\263\274 \354\277\274\353\246\254 5.md" diff --git "a/khj20006/202510/02 BOJ P2 \354\210\230\354\227\264\352\263\274 \354\277\274\353\246\254 5.md" "b/khj20006/202510/02 BOJ P2 \354\210\230\354\227\264\352\263\274 \354\277\274\353\246\254 5.md" new file mode 100644 index 00000000..9182eecb --- /dev/null +++ "b/khj20006/202510/02 BOJ P2 \354\210\230\354\227\264\352\263\274 \354\277\274\353\246\254 5.md" @@ -0,0 +1,40 @@ +```cpp +#include +using namespace std; + +int N, Q, k, a[100001]{}, b[100000]{}, c[1000001]{}; +vector> q; + +int main(){ + cin.tie(0)->sync_with_stdio(0); + + cin>>N; + k = sqrt(N); + for(int i=0;i>a[i]; + cin>>Q; + q.resize(Q); + int t = 0; + for(auto &[l,r,_]:q) { + cin>>l>>r; + _ = t++; + l--, r--; + } + sort(q.begin(), q.end(), [](auto x, auto y) -> bool { + auto [al, ar, ax] = x; + auto [bl, br, bx] = y; + if(al/k == bl/k) return ar < br; + return al/k < bl/k; + }); + + int l = 0, r = -1, s = 0; + for(auto [pl,pr,x]:q) { + while(r < pr) if(!c[a[++r]]++) s++; + while(pr < r) if(!--c[a[r--]]) s--; + while(l < pl) if(!--c[a[l++]]) s--; + while(pl < l) if(!c[a[--l]]++) s++; + b[x] = s; + } + for(int i=0;i