Fişierul intrare/ieşire: | snpid.in, snpid.out | Sursă | Lot Resița 2012 - Baraj 2 Seniori |
Autor | Mugurel Ionut Andreica | Adăugată de | |
Timp execuţie pe test | 0.4 sec | Limită de memorie | 131072 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Snpid
Se dau N puncte în plan, numerotate de la 1 la N. Punctul i are coordonatele (i, y(i)), iar cele N coordonate y formează o permutare a numerelor de la 1 la N. Un dreptunghi frumos este un dreptunghi ce are în colţurile stânga-jos şi dreapta-sus două dintre cele N puncte. Mai exact, două puncte i şi j determină un dreptunghi frumos cu colţul stânga-jos în punctul i şi colţul dreapta-sus în punctul j dacă i < j şi y(i) < y(j). Fie NPID(i, j)
numărul de puncte aflate strict în interiorul dreptunghiului frumos cu colţul stânga-jos în punctul i şi colţul dreapta-sus în punctul j.
Cerinţă
Determinaţi pentru fiecare punct i valoarea SNPID(i) =
suma tuturor valorilor 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 N, reprezentând numărul de puncte. Pe următoarea linie se află N numere naturale, valorile y(1), y(2), ..., y(N) în această ordine.
Date de ieşire
Fişierul snpid.out va conţine N linii, ce-a de-a i-a linie conţinând valoarea SNPID(i)
.
Restricţii
- 1 ≤ N ≤ 100 000
- Atenţie! Rezultatele pot depăşi tipurile de date întregi pe 32 de biţi.
Exemplu
snpid.in | snpid.out |
---|---|
12 3 1 4 11 7 12 2 9 10 5 8 6 | 16 21 8 0 1 0 3 0 0 0 0 0 |