একটি অ্যারে A (n উপাদান) এবং কুয়েরি লিস্ট Q (q কুয়েরি) দেওয়া আছে। প্রতিটি Query[i] = (x, k)। কুয়েরি প্রসেস করলে: x=0 হলে A[k] ১ কমাবে, x=1 হলে k-তম লার্জেস্ট এলিমেন্ট প্রিন্ট করবে। শুরুতে A-এর সব উপাদান ০ বা ১।
উদাহরণ
A=[1,1,0,1,0], Q=[[2,3],[1,2],[2,3],[2,1],[2,5]] → আউটপুট: [1,1,1,0]
সমাধানের ধাপসমূহ
n := A.size()
m := 0
for i:=0 to n-1: if A[i]!=0: m++
for j:=0 to Q.size()-1:
x := Q[j][0], k := Q[j][1]
if x==0:
if A[k]!=0: m--
else: m++
A[k] ^= 1
else:
if m >= k: print 1
else: print 0
সি++ কোড উদাহরণ
#include <bits/stdc++.h> using namespace std; void solve(vectorA, vector > Q) { int n = A.size(), m = 0; for (int i=0;i = k) cout << 1 << ", "; else cout << 0 << ", "; } } } int main() { vector A = {1,1,0,1,0}; vector > Q = {{1,2},{0,1},{1,2},{1,0},{1,4}}; solve(A,Q); }
ইনপুট
{1,1,0,1,0}, {{1,2},{0,1},{1,2},{1,0},{1,4}}
আউটপুট
1, 1, 1, 0,