One day n friends met at a party, they hadn’t seen each other for a long time and so they decided to make a group photo together.
Simply speaking, the process of taking photos can be described as follows. On the photo, each photographed friend occupies a rectangle of pixels: the i-th of them occupies the rectangle of width w i pixels and height h i pixels. On the group photo everybody stands in a line, thus the minimum pixel size of the photo including all the photographed friends, is W × H, where W is the total sum of all widths and H is the maximum height of all the photographed friends.
As is usually the case, the friends made n photos — the j-th (1 ≤ j ≤ n) photo had everybody except for the j-th friend as he was the photographer.
Print the minimum size of each made photo in pixels.
Input
The first line contains integer n (2 ≤ n ≤ 200 000) — the number of friends.
Then n lines follow: the i-th line contains information about the i-th friend. The line contains a pair of integers w i, h i (1 ≤ w i ≤ 10, 1 ≤ h i ≤ 1000) — the width and height in pixels of the corresponding rectangle.
Output
Print n space-separated numbers b 1, b 2, …, b n, where b i — the total number of pixels on the minimum photo containing all friends expect for the i-th one.
Examples
input
3
1 10
5 5
10 1
output
75 110 60
input
3
2 1
1 2
2 1
output
6 4 6
Solution:
#include <cstring> #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> #include <memory.h> #include <cassert> using namespace std; const int N = 1234567; int w[N], h[N]; int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d %d", w + i, h + i); } h[n] = -1; int m1 = n, m2 = n; int sum = 0; for (int i = 0; i < n; i++) { sum += w[i]; if (h[i] > h[m1]) { m2 = m1; m1 = i; } else { if (h[i] > h[m2]) { m2 = i; } } } for (int i = 0; i < n; i++) { if (i > 0) printf(" "); printf("%d", (sum - w[i]) * (i == m1 ? h[m2] : h[m1])); } printf("\n"); return 0; }