CADYDIST - Candy Distribution

Alice is a teacher that loves her students. As the school year reaches its end, she wants to reward all her students with candies for all their hard work.

Since each of her classes is unique, she decided she’ll give a different kind of candy for each class, and in order to avoid students being mad at others in their class, she wants to make things fair by giving all students in the same class the same kind of candy.

Happily, she went to the candy shop, and fortunately found out that it had N different types of candy, exactly the same number of classes of students she taught!

Looking at the prices and paying close attention to the number of students in each class, Alice noted that she could save some money by assigning the types of candy to certain classes. Because she’s a teacher, her income is not that big and saving money is very important to her, so she asked you to write a program to determine the least amount of money she must spend.

Input

Each test case consists of three lines. The first line contains a positive integer N (1 ≤ N ≤ 100000). The second line contains N integers Ci, the ith integer indicates the number of students in Alice’s i-th class. The third and last line also contains N integers Pi the ith integer indicates the price of the ith type of candy (1 ≤ Ci, Pi  ≤ 100000).

The input ends with a line consisting of a 0, which indicates end of input.

Output

For each test case, output a line containing the least amount of money Alice must spend.

Example

Input:
4
1 1 1 1
2 2 2 2
5
10 80 37 22 109
6 8 8 20 15
0 Output: 8
2120

Added by:Paulo Costa
Date:2012-01-19
Time limit:0.301s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:ITA - Brazilian ICPC Training Camp, Jan-Feb/2012

hide comments
2015-01-19 05:55:56 Ankur Singh
use long long
2015-01-08 06:11:31 Malinga
@Surayansh tiwari: thanks!! your advice saved me from getting multiple WAs..
2015-01-01 20:59:03 AlphaDecay
Please correct the description!
2014-12-18 04:31:29 surayans tiwari(http://bit.ly/1EPzcpv)
wrong problem description ,, use long long everywhere
2014-12-16 22:49:39 Rajat (1307086)
Greed is good.
1 goooooooo
2014-12-14 09:13:01 mayank
An advice. If you wish to ascertain the datatype size, then use assert(sizeof(datatype)==n), where is a guess for the size. The program will throw, SIGABRT if assert fails. So it shows pyramid has long long->8 bytes, long->4 bytes, int->4 bytes. :)
2014-10-01 20:47:29 Utkarsh Rastogi
AC in one go..... :)
And that too without debugging....
2014-08-25 20:12:42 Shaktiman
just keep attention on data types you are taking and their i/o
as for unsigned long long use %llu in scanf and printf
2014-06-12 06:15:21 Warrior Within !!!
used same logic...
tle with cin and accepted with scanf
2014-05-31 18:06:02 agaurav77
WA with long long, and AC with unsigned long long. I don't know how guys did it with plain long long.
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.