snpid

Time limit: 0.2s Memory limit: 128MB Input: snpid.in Output: snpid.out

Se dau NN puncte în plan, numerotate de la 11 la NN. Punctul ii are coordonatele (i,y(i))(i, y(i)), iar cele NN coordonate yy formează o permutare a numerelor de la 11 la NN. Un dreptunghi frumos este un dreptunghi ce are în colţurile stânga-jos şi dreapta-sus două dintre cele NN puncte. Mai exact, două puncte ii şi jj determină un dreptunghi frumos cu colţul stânga-jos în punctul ii şi colţul dreapta-sus în punctul jj dacă i<ji < j şi y(i)<y(j)y(i) < y(j). Fie NPID(i,j)NPID(i, j) numărul de puncte aflate strict în interiorul dreptunghiului frumos cu colţul stânga-jos în punctul ii şi colţul dreapta-sus în punctul jj.

Cerință

Determinaţi pentru fiecare punct ii valoarea SNPID(i)SNPID(i) = suma tuturor valorilor NPID(i,j)NPID(i, j) posibile (adică suma numerelor de puncte aflate în interiorul dreptunghiurilor frumoase cu colţul stânga-jos în punctul i).

Date de intrare

Pe prima linie a fişierului snpid.in se afla numărul natural NN, reprezentând numărul de puncte. Pe următoarea linie se află NN numere naturale, valorile y(1),y(2),,y(N)y(1), y(2), \dots, y(N) în această ordine.

Date de ieșire

Fişierul snpid.out va conţine NN linii, ce-a de-a ii-a linie conţinând valoarea SNPID(i)SNPID(i).

Restricții și precizări

  • 1N100 0001 \leq N \leq 100 \ 000
  • Atenţie! Rezultatele pot depăşi tipurile de date întregi pe 3232 de biţi.

Exemplu

snpid.in

12
3 1 4 11 7 12 2 9 10 5 8 6

snpid.out

16
21
8
0
1
0
3
0
0
0
0
0

Log in or sign up to be able to send submissions!