222 afișări Moldovan Alexandru Bogdan (AlexMoldovan) 17 feb www.pbinfo.ro
Etichete: nicio etichetă

@#include <iostream>
#include <algorithm>

using namespace std;

int cb_min(int A[], int n, int x)
{ /// cel mai mic mai mare sau egal x int stanga = 1, dreapta = n, mijloc, p = 0; while(stanga <= dreapta) { mijloc = (stanga + dreapta) / 2;

if(A[mijloc] >= x) /// este >= x { p = mijloc; /// il retin dreapta = mijloc – 1; /// mut dreapta sa caut mai mic } else /// este < x stanga = mijloc + 1; /// mut stanga sa caut mai mare } return p; }

int cb_max(int A[], int n, int x)
{ /// pozitia celui mai mare care este <= x int st=1,dr=n,mij,p=0; while(st<=dr) { mij=(st+dr)/2; if(A[mij]<=x) { p=mij; st=mij+1; } else dr=mij-1; } return p;
}

int main()
{ int n, A200001, t; cin >> n >> t; for(int i = 1; i <= n; i++) cin >> A[i]; sort(A+1, A+1+n); for(int i = 1; i <= t; i++) { int x, y; cin >> x >> y; int z = cb_max(A,n,y)-cb_min(A,n,x)+1; if(z > n) cout << 0 << ‘\n’; else cout << z << ‘\n’; }

return 0; }@

222 afișări Moldovan Alexandru Bogdan (AlexMoldovan) 17 feb www.pbinfo.ro