[BOJ 8708] Sprężyny

View as PDF

Submit solution

Points: 1
Time limit: 1.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

Bajtoś dostał nową kolekcję sprężyn. Każda z nich została wyprodukowana w pewnych wymiarach, a każde jej rozciągnięcie, bądź ściśnięcie, wymaga dość sporego wysiłku.</p>

Aby wydłużyć lub skrócić o 1 centymetr nieruszaną jeszcze sprężynę, potrzeba 1 jednostki wysiłku. Każde kolejne rozciągnięcie, bądź ściśnięcie, tej samej sprężyny wymaga dodatkowo zwiększenia wysiłku o 1. Dokładniej, jeśli Bajtoś chce wydłużyć sprężynę o d centymetrów, to będzie się wysilał o kolejno 1, 2, ..., d jednostek wysiłku.

Bajtoś zastanawia się, ile minimalnie wysiłku musi włożyć, aby k najkrótszych sprężyn było tej samej długości. Zakładamy, że wszystkie sprężyny Bajtosia nie były dotąd rozciągane ani ściskane.

입력 형식

Pierwszy wiersz standardowego wejścia zawiera dwie liczby całkowite n, m (1 ≤ n, m ≤ 106), oznaczające odpowiednio liczbę sprężyn oraz liczbę zapytań Bajtosia. Kolejny wiersz zawiera n liczb całkowitych s1, s2, ..., sn (1 ≤ sisi+1 ≤ 109), gdzie si oznacza długość i-tej sprężyny. Następny wiersz zawiera m liczb całkowitych k1, k2, ..., km (1 ≤ kjn), gdzie kj oznacza j-te zapytanie Bajtosia, w którym wybiera kj najmniejszych sprężyn.

출력 형식

j-ty wiersz wyjścia powinien być odpowiedzią na j-te zapytanie (to jest ile minimalnie wysiłku kosztowałoby Bajtosia ustawienie kj najkrótszych sprężyn na tą samą długość) modulo 109 + 7.

예제 입력

4 4 
1 3 4 10
1 2 3 4

예제 출력

0
2
4
28

Comments

There are no comments at the moment.