Problem Statement
The New York Stock Exchange is open for 390 minutes a day, from 9:30am until 4:00pm. During this time, you can buy and sell shares of companies listed on the exchange. Given a graph of how the share prices of two companies fluctuate in one day, calculate the highest amount of money you could possibly earn.
You begin the day with $1000. At any time, you can buy shares of either company at a cost of the number of shares you are buying times the current share price. Similarly, at any time you can sell shares you own of either company for a price of the number of shares you are selling times the current share price. You are not limited to buying or selling whole numbers of shares. You may never spend more money than you have, nor may you sell more shares than you own. Assume you pay no fees or commission on any purchase or sale.
The share price for a company will be given as a pair of
For example, given the following input arrays:
timeA = { 0, 60, 150, 270, 390 }
priceA = { 60, 80, 40, 40, 60 }
timeB = { 0, 180, 300, 390 }
priceB = { 40, 20, 70, 80 }
stock A is shown in red and stock B is shown in blue in the figure below.
In this example, you would make the most money by spending your entire $1000 to buy 16 2/3 shares of stock A for $60 each at time 0. One hour later at time 60, you should sell all your shares at $80 each, receiving 1333 1/3 dollars. You would hold on to your money until time 180, and then spend it all on 66 2/3 shares of stock B. At time 300, you would sell these shares for $70 each (4666 2/3 dollars) and immediately buy as many shares of stock A as you can afford. The price of stock A at time 300 is $45 (1/4 of the way between $40 and $60), so you can afford 103 19/27 shares. You would then sell these at the end of the day for $60, for a total of 6222 2/9 dollars, giving you earnings of about $5222.22 over your initial $1000.
Definition
- Class:
- DayTrader
- Method:
- earnings
- Parameters:
- int[], int[], int[], int[]
- Returns:
- double
- Method signature:
- double earnings(int[] timeA, int[] priceA, int[] timeB, int[] priceB)
- (be sure your method is public)
Notes
- Your return value must have an absolute or relative error less than 1e-9.
Constraints
- timeA, priceA, timeB, and priceB will each contain between 2 and 50 elements, inclusive.
- timeA and priceA will contain the same number of elements.
- timeB and priceB will contain the same number of elements.
- The first element of timeA and timeB will be 0.
- The last element of timeA and timeB will be 390.
- The elements of timeA and timeB will be strictly ascending.
- Each element of priceA and priceB will be between 10 and 100, inclusive.
Examples
{ 0, 390 }
{ 25, 50 }
{ 0, 390 }
{ 10, 30 }
Returns: 2000.0
Stock A doubles in value throughout the day, while stock B triples. If you buy stock B at time 0 and sell at time 390, you can earn $2000.
{ 0, 50, 390 }
{ 80, 65, 20 }
{ 0, 310, 390 }
{ 12, 12, 11 }
Returns: 0.0
Neither stock ever goes up in value, so you cannot earn any money today.
{ 0, 60, 150, 270, 390 }
{ 60, 80, 40, 40, 60 }
{ 0, 180, 300, 390 }
{ 40, 20, 70, 80 }
Returns: 5222.222222222223
This is the example from the problem statement.
{ 0, 390 }
{ 10, 20 }
{ 0, 100, 101, 390 }
{ 100, 10, 100, 10 }
Returns: 18959.266802443988
{0, 100, 200, 300, 390 }
{ 10, 11, 14, 19, 26 }
{ 0, 50, 150, 250, 350, 390 }
{ 10, 10, 12, 16, 22, 29 }
Returns: 2403.157552083335
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,390}
{10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100}
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,390}
{100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10,100,10}
Returns: 1.0E52
{ 0, 390 }
{ 16, 49 }
{ 0, 390 }
{ 40, 80 }
Returns: 2062.5
{ 0, 100, 390 }
{ 43, 16, 81 }
{ 0, 53, 220, 282, 390 }
{ 30, 71, 56, 55, 79 }
Returns: 11066.383228840123
{ 0, 6, 48, 70, 99, 109, 140, 159, 174, 189, 245, 249, 279, 287, 311, 330, 356, 370, 383, 390 }
{ 31, 21, 41, 62, 59, 24, 60, 80, 74, 33, 68, 94, 38, 10, 93, 38, 32, 66, 15, 68 }
{ 0, 4, 37, 52, 61, 77, 112, 125, 134, 166, 242, 256, 287, 292, 305, 308, 343, 346, 382, 390 }
{ 31, 81, 92, 46, 17, 21, 62, 38, 94, 96, 18, 21, 94, 44, 11, 17, 23, 26, 27, 41 }
Returns: 4.131414658143338E8
{ 0, 21, 33, 45, 74, 170, 181, 183, 195, 211, 216, 217, 223, 225, 227, 237, 240, 243, 246, 261, 275, 279, 284, 309, 313, 320, 322, 325, 335, 344, 370, 376, 384, 388, 390 }
{ 74, 12, 72, 28, 10, 75, 98, 24, 25, 41, 49, 74, 27, 76, 31, 16, 27, 35, 38, 36, 95, 76, 75, 80, 87, 53, 65, 58, 86, 79, 72, 75, 54, 15, 30 }
{ 0, 8, 39, 54, 105, 120, 135, 148, 157, 193, 198, 208, 249, 261, 271, 274, 296, 308, 312, 340, 342, 344, 384, 389, 390 }
{ 92, 18, 47, 47, 32, 77, 81, 94, 99, 71, 57, 90, 20, 42, 90, 20, 65, 57, 89, 81, 61, 65, 60, 10, 84 }
Returns: 3.4970716780048733E9
{ 0, 5, 16, 18, 20, 25, 26, 27, 34, 37, 46, 47, 48, 54, 64, 73, 77, 106, 118, 130, 136, 151, 152, 163, 167, 171, 196, 208, 212, 213, 217, 220, 235, 240, 272, 277, 291, 293, 298, 312, 314, 353, 354, 363, 365, 368, 378, 384, 388, 390 }
{ 95, 56, 36, 17, 95, 17, 71, 17, 21, 44, 87, 18, 57, 63, 49, 70, 97, 47, 80, 67, 85, 65, 40, 93, 46, 75, 72, 97, 39, 89, 29, 56, 30, 90, 62, 92, 21, 18, 34, 57, 93, 34, 73, 29, 42, 17, 25, 69, 15, 56 }
{ 0, 2, 20, 31, 40, 44, 46, 53, 80, 83, 94, 105, 108, 114, 129, 131, 133, 137, 154, 164, 183, 195, 199, 206, 216, 227, 231, 234, 241, 250, 254, 266, 273, 295, 298, 301, 302, 307, 313, 314, 327, 331, 354, 357, 365, 371, 372, 381, 385, 390 }
{ 100, 52, 56, 10, 53, 28, 48, 91, 49, 94, 26, 85, 42, 38, 51, 29, 18, 10, 83, 31, 13, 40, 91, 12, 66, 78, 46, 68, 45, 95, 70, 56, 53, 51, 83, 13, 27, 95, 54, 70, 69, 50, 38, 84, 51, 14, 14, 37, 22, 99 }
Returns: 1.29505892766141696E17
{ 0, 104, 235, 239, 275, 293, 296, 311, 332, 390 }
{ 11, 85, 45, 90, 41, 97, 11, 69, 13, 19 }
{ 0, 1, 18, 19, 31, 44, 54, 57, 61, 68, 77, 95, 96, 111, 115, 125, 127, 134, 140, 143, 148, 153, 158, 168, 182, 183, 184, 189, 198, 211, 220, 245, 247, 248, 256, 272, 276, 283, 294, 303, 305, 309, 312, 317, 320, 327, 357, 363, 377, 390 }
{ 37, 36, 78, 65, 92, 37, 23, 44, 78, 48, 34, 45, 68, 15, 89, 84, 40, 64, 94, 82, 60, 40, 70, 83, 63, 51, 45, 19, 95, 62, 25, 30, 41, 58, 100, 22, 61, 83, 61, 97, 79, 55, 41, 52, 17, 23, 94, 52, 52, 68 }
Returns: 2.234639227322384E10
{ 0, 6, 11, 12, 21, 37, 40, 49, 79, 80, 103, 104, 111, 112, 126, 134, 147, 151, 155, 163, 174, 207, 276, 277, 295, 297, 309, 311, 332, 356, 372, 375, 384, 390 }
{ 69, 14, 51, 74, 55, 38, 85, 66, 68, 36, 25, 29, 11, 89, 16, 12, 77, 72, 88, 81, 83, 62, 91, 71, 64, 78, 53, 49, 79, 42, 39, 27, 44, 21 }
{ 0, 7, 12, 15, 41, 42, 57, 59, 66, 85, 89, 97, 102, 111, 138, 142, 145, 154, 169, 211, 212, 222, 225, 227, 241, 243, 253, 259, 274, 278, 284, 285, 291, 315, 318, 323, 329, 374, 379, 380, 390 }
{ 66, 43, 20, 96, 69, 81, 82, 68, 31, 36, 76, 17, 50, 97, 67, 25, 24, 93, 38, 71, 27, 47, 72, 29, 40, 44, 52, 78, 18, 51, 23, 90, 77, 84, 56, 58, 19, 12, 88, 74, 39 }
Returns: 5.987510118084828E11
{ 0, 49, 70, 72, 107, 148, 152, 169, 172, 180, 247, 295, 302, 303, 304, 306, 316, 317, 390 }
{ 85, 10, 82, 52, 47, 76, 89, 15, 69, 99, 48, 80, 23, 18, 70, 32, 28, 78, 45 }
{ 0, 7, 11, 18, 21, 22, 27, 31, 32, 69, 88, 91, 98, 101, 111, 113, 116, 118, 121, 122, 123, 139, 162, 164, 166, 169, 179, 183, 193, 212, 220, 222, 224, 226, 229, 249, 263, 269, 271, 275, 276, 278, 298, 302, 303, 341, 350, 365, 372, 390 }
{ 93, 20, 73, 90, 38, 27, 91, 22, 45, 47, 40, 30, 72, 54, 35, 81, 67, 59, 82, 21, 94, 77, 78, 76, 63, 62, 53, 18, 98, 50, 55, 66, 74, 68, 52, 23, 16, 14, 26, 46, 29, 96, 24, 61, 89, 19, 57, 65, 31, 60 }
Returns: 3.7337235094099336E12
{ 0, 10, 12, 24, 32, 40, 58, 64, 87, 94, 98, 118, 120, 128, 131, 133, 151, 155, 165, 166, 180, 187, 191, 193, 196, 208, 213, 216, 221, 249, 259, 261, 277, 299, 300, 306, 320, 324, 325, 326, 331, 332, 337, 340, 341, 343, 364, 375, 382, 390 }
{ 31, 80, 34, 77, 94, 10, 46, 15, 51, 24, 56, 93, 99, 78, 35, 32, 90, 28, 13, 64, 23, 48, 42, 62, 76, 36, 37, 68, 52, 19, 88, 14, 39, 38, 74, 59, 54, 85, 84, 82, 75, 47, 69, 22, 43, 50, 86, 40, 63, 92 }
{ 0, 14, 23, 28, 46, 65, 67, 68, 79, 80, 85, 95, 102, 105, 115, 126, 129, 130, 141, 144, 147, 160, 161, 165, 167, 174, 189, 206, 213, 218, 221, 247, 261, 277, 317, 319, 331, 334, 336, 342, 348, 354, 359, 364, 369, 374, 375, 380, 383, 390 }
{ 19, 32, 65, 38, 72, 64, 90, 41, 36, 29, 56, 12, 100, 96, 44, 21, 68, 37, 28, 85, 81, 22, 97, 94, 86, 17, 93, 78, 71, 98, 70, 80, 84, 79, 33, 95, 42, 31, 77, 27, 49, 66, 76, 62, 82, 25, 74, 83, 73, 13 }
Returns: 2.0790846547385745E15
{ 0, 9, 23, 83, 113, 122, 147, 165, 172, 199, 217, 278, 312, 318, 374, 383, 390 }
{ 48, 89, 74, 37, 15, 79, 68, 12, 29, 78, 36, 80, 23, 39, 93, 88, 98 }
{ 0, 6, 17, 21, 31, 50, 68, 82, 90, 103, 106, 116, 124, 129, 138, 143, 152, 180, 194, 229, 238, 247, 256, 258, 278, 295, 313, 353, 355, 358, 364, 376, 381, 382, 390 }
{ 37, 89, 70, 84, 54, 64, 58, 92, 14, 75, 31, 95, 87, 100, 88, 45, 99, 71, 63, 10, 80, 85, 61, 50, 47, 38, 29, 42, 67, 13, 18, 82, 32, 60, 48 }
Returns: 7.78920833289172E9
{ 0, 4, 14, 15, 67, 98, 154, 165, 179, 231, 254, 268, 290, 307, 342, 390 }
{ 55, 88, 93, 35, 16, 70, 21, 65, 49, 98, 36, 97, 45, 13, 24, 23 }
{ 0, 22, 29, 42, 64, 73, 105, 109, 124, 130, 131, 142, 173, 174, 176, 185, 188, 207, 208, 211, 218, 220, 227, 228, 235, 256, 261, 264, 267, 272, 280, 282, 283, 286, 291, 295, 297, 303, 305, 323, 327, 341, 343, 352, 366, 371, 377, 378, 386, 390 }
{ 45, 93, 87, 90, 18, 95, 16, 10, 85, 74, 59, 32, 31, 33, 75, 15, 43, 63, 76, 44, 72, 82, 26, 98, 50, 84, 54, 40, 60, 77, 57, 64, 30, 71, 51, 39, 58, 14, 38, 52, 78, 70, 81, 27, 56, 19, 11, 100, 34, 89 }
Returns: 1.299935236435256E12
{ 0, 9, 23, 44, 155, 161, 173, 211, 237, 247, 258, 324, 331, 390 }
{ 42, 22, 27, 54, 70, 57, 75, 93, 39, 47, 32, 40, 85, 23 }
{ 0, 3, 28, 80, 95, 102, 181, 390 }
{ 70, 56, 81, 73, 83, 96, 61, 54 }
Returns: 21965.26495828112
{ 0, 5, 23, 28, 30, 50, 89, 90, 99, 101, 109, 118, 119, 120, 144, 182, 190, 192, 208, 210, 222, 233, 245, 255, 291, 336, 349, 351, 371, 376, 390 }
{ 81, 43, 20, 83, 96, 78, 93, 79, 86, 62, 49, 88, 36, 51, 58, 23, 97, 85, 46, 91, 84, 80, 37, 92, 57, 40, 25, 32, 90, 45, 89 }
{ 0, 15, 16, 20, 33, 34, 39, 46, 55, 62, 63, 67, 76, 77, 80, 85, 86, 115, 120, 132, 133, 145, 147, 165, 175, 180, 184, 185, 188, 194, 203, 211, 240, 242, 244, 267, 277, 290, 320, 332, 341, 346, 390 }
{ 100, 80, 19, 37, 66, 64, 25, 68, 90, 45, 17, 52, 76, 74, 34, 58, 99, 10, 33, 69, 20, 46, 55, 18, 32, 60, 42, 63, 12, 67, 53, 81, 50, 40, 72, 21, 61, 65, 31, 97, 75, 26, 47 }
Returns: 1.7702353254251995E12
{ 0, 4, 7, 10, 38, 42, 43, 47, 60, 73, 81, 82, 101, 107, 128, 131, 132, 134, 141, 147, 148, 169, 171, 181, 189, 209, 218, 230, 245, 258, 261, 265, 280, 284, 286, 290, 291, 303, 310, 311, 313, 317, 336, 350, 353, 354, 358, 359, 372, 390 }
{ 87, 51, 18, 95, 31, 90, 66, 89, 53, 93, 60, 54, 56, 97, 27, 42, 81, 73, 57, 24, 86, 61, 78, 19, 29, 36, 76, 37, 98, 11, 20, 35, 99, 33, 16, 14, 68, 65, 75, 55, 12, 88, 48, 59, 58, 96, 50, 34, 41, 45 }
{ 0, 13, 15, 50, 63, 77, 88, 95, 104, 117, 129, 142, 155, 181, 190, 191, 208, 215, 224, 234, 244, 260, 283, 287, 305, 318, 324, 325, 352, 364, 386, 390 }
{ 73, 69, 45, 85, 90, 28, 88, 65, 47, 53, 22, 44, 10, 72, 41, 40, 94, 46, 32, 13, 15, 79, 59, 26, 68, 91, 38, 66, 80, 30, 31, 77 }
Returns: 6.399954926459524E13
{ 0, 12, 20, 22, 28, 40, 88, 90, 97, 103, 129, 134, 144, 154, 157, 159, 180, 211, 220, 238, 242, 253, 314, 318, 321, 336, 345, 347, 354, 363, 368, 376, 390 }
{ 80, 86, 68, 52, 83, 87, 17, 70, 55, 19, 45, 56, 28, 69, 33, 13, 10, 35, 82, 95, 30, 43, 34, 98, 15, 58, 29, 77, 85, 27, 76, 97, 21 }
{ 0, 9, 32, 56, 62, 63, 66, 103, 112, 141, 162, 169, 176, 189, 203, 241, 243, 264, 266, 272, 300, 310, 312, 327, 378, 390 }
{ 20, 95, 83, 85, 88, 64, 43, 39, 80, 81, 77, 57, 68, 84, 87, 60, 10, 96, 75, 63, 29, 19, 59, 62, 99, 46 }
Returns: 1.916299477712221E10
{ 0, 2, 12, 23, 43, 44, 45, 50, 61, 66, 84, 87, 89, 106, 123, 131, 136, 145, 150, 156, 157, 160, 164, 168, 175, 179, 197, 203, 218, 222, 235, 241, 242, 256, 262, 264, 309, 310, 312, 319, 337, 354, 365, 368, 370, 373, 374, 381, 383, 390 }
{ 93, 100, 39, 33, 98, 58, 35, 90, 68, 84, 92, 62, 87, 95, 47, 80, 64, 91, 29, 78, 34, 38, 27, 70, 74, 97, 23, 82, 71, 72, 11, 36, 37, 43, 96, 31, 30, 17, 46, 25, 50, 51, 44, 99, 32, 69, 24, 40, 14, 16 }
{ 0, 7, 29, 36, 43, 53, 73, 88, 97, 101, 139, 141, 145, 146, 151, 155, 157, 171, 173, 190, 202, 206, 211, 218, 219, 224, 226, 233, 244, 266, 279, 290, 301, 302, 310, 323, 332, 339, 347, 354, 355, 366, 381, 390 }
{ 14, 21, 65, 59, 83, 64, 17, 37, 98, 49, 38, 27, 87, 55, 54, 32, 68, 71, 34, 30, 82, 57, 76, 97, 80, 73, 26, 96, 48, 43, 40, 52, 11, 58, 24, 39, 61, 92, 28, 60, 51, 47, 85, 89 }
Returns: 2.5272102763073484E13
{ 0, 4, 72, 79, 92, 116, 126, 141, 157, 158, 184, 196, 207, 210, 241, 266, 367, 390 }
{ 72, 31, 87, 27, 100, 12, 32, 51, 43, 93, 74, 54, 57, 53, 11, 18, 42, 71 }
{ 0, 323, 390 }
{ 58, 16, 62 }
Returns: 1410969.2899460522
{ 0, 8, 182, 184, 229, 256, 317, 348, 377, 390 }
{ 38, 28, 73, 45, 30, 42, 85, 80, 43, 32 }
{ 0, 9, 10, 36, 47, 54, 63, 75, 92, 106, 116, 138, 139, 140, 142, 148, 157, 158, 170, 181, 184, 210, 212, 223, 225, 227, 232, 234, 237, 239, 240, 249, 253, 261, 272, 279, 291, 300, 315, 316, 325, 330, 343, 345, 346, 362, 379, 381, 382, 390 }
{ 74, 32, 67, 80, 10, 11, 48, 63, 41, 66, 84, 47, 86, 76, 46, 43, 44, 35, 20, 24, 71, 94, 30, 73, 77, 96, 65, 87, 25, 95, 100, 31, 93, 27, 45, 75, 33, 34, 64, 40, 81, 12, 68, 58, 97, 14, 82, 91, 88, 15 }
Returns: 2.46112265271553E10
{ 0, 4, 26, 61, 103, 119, 127, 215, 267, 312, 341, 390 }
{ 12, 46, 86, 78, 33, 11, 34, 74, 92, 29, 39, 47 }
{ 0, 19, 28, 41, 49, 65, 68, 108, 112, 120, 125, 146, 183, 210, 228, 249, 270, 274, 295, 313, 317, 323, 349, 356, 361, 365, 390 }
{ 21, 41, 47, 20, 36, 56, 52, 38, 86, 12, 11, 84, 95, 22, 65, 81, 72, 48, 27, 39, 59, 35, 78, 37, 79, 24, 58 }
Returns: 1.7414077615010837E8
{ 0, 7, 17, 22, 35, 41, 43, 51, 56, 66, 70, 84, 86, 92, 98, 105, 109, 133, 136, 141, 148, 159, 168, 176, 178, 191, 197, 211, 216, 217, 222, 233, 239, 243, 269, 272, 276, 290, 293, 301, 303, 319, 336, 347, 353, 360, 375, 376, 382, 390 }
{ 52, 60, 31, 70, 43, 59, 79, 78, 64, 16, 81, 35, 45, 26, 20, 47, 39, 82, 49, 67, 68, 19, 87, 40, 23, 25, 38, 48, 88, 100, 61, 53, 73, 56, 34, 92, 46, 93, 36, 13, 91, 90, 84, 95, 30, 21, 89, 74, 75, 99 }
{ 0, 31, 37, 41, 52, 57, 59, 60, 69, 84, 86, 93, 98, 101, 103, 106, 107, 120, 132, 157, 174, 177, 189, 190, 191, 200, 203, 210, 217, 225, 231, 256, 257, 263, 273, 283, 313, 316, 317, 323, 334, 335, 356, 358, 366, 367, 374, 388, 389, 390 }
{ 99, 88, 16, 37, 71, 74, 22, 80, 34, 98, 13, 50, 23, 14, 46, 81, 69, 60, 68, 53, 39, 15, 79, 83, 36, 51, 18, 75, 42, 93, 90, 27, 26, 59, 85, 11, 62, 43, 92, 63, 77, 56, 48, 78, 91, 12, 76, 45, 10, 70 }
Returns: 3.947879460281004E16
{ 0, 11, 16, 19, 25, 46, 57, 64, 87, 96, 100, 110, 130, 150, 156, 157, 158, 162, 165, 173, 174, 182, 186, 200, 214, 234, 243, 251, 254, 258, 261, 267, 269, 270, 286, 288, 292, 293, 294, 311, 319, 342, 353, 358, 370, 375, 380, 382, 390 }
{ 21, 43, 47, 85, 68, 51, 26, 32, 64, 46, 69, 60, 70, 97, 67, 54, 15, 55, 91, 61, 72, 95, 25, 93, 13, 39, 56, 23, 10, 90, 52, 24, 29, 100, 41, 66, 74, 81, 62, 53, 73, 35, 75, 63, 44, 37, 20, 17, 38 }
{ 0, 5, 7, 8, 14, 16, 23, 32, 47, 67, 68, 73, 78, 82, 98, 99, 103, 104, 107, 113, 118, 131, 137, 161, 162, 169, 183, 184, 190, 199, 204, 205, 206, 208, 221, 247, 258, 271, 291, 296, 299, 306, 325, 329, 353, 354, 363, 366, 375, 390 }
{ 99, 48, 66, 42, 100, 24, 38, 72, 40, 44, 61, 11, 17, 91, 10, 16, 25, 88, 94, 29, 86, 15, 87, 41, 20, 58, 62, 56, 26, 84, 30, 79, 59, 32, 83, 68, 53, 52, 37, 43, 22, 97, 81, 45, 93, 47, 89, 71, 80, 23 }
Returns: 2.320630104347927E15
{ 0, 17, 24, 32, 41, 87, 99, 103, 142, 217, 250, 258, 262, 322, 374, 390 }
{ 48, 91, 71, 23, 80, 45, 99, 82, 95, 47, 38, 55, 50, 39, 27, 72 }
{ 0, 27, 34, 54, 94, 115, 175, 184, 216, 259, 261, 288, 294, 299, 307, 390 }
{ 87, 78, 25, 92, 36, 24, 61, 94, 32, 69, 18, 99, 97, 39, 67, 58 }
Returns: 7998230.595295497
{ 0, 2, 9, 27, 31, 32, 43, 48, 74, 75, 108, 117, 122, 126, 145, 146, 149, 159, 160, 163, 169, 175, 176, 201, 209, 217, 225, 231, 232, 236, 246, 260, 281, 303, 304, 310, 319, 324, 325, 326, 330, 332, 334, 364, 375, 376, 377, 378, 389, 390 }
{ 43, 22, 12, 74, 14, 80, 11, 50, 37, 72, 36, 39, 61, 26, 33, 75, 35, 30, 92, 57, 94, 59, 18, 34, 84, 21, 98, 69, 47, 66, 83, 79, 29, 77, 40, 15, 10, 64, 54, 62, 85, 13, 78, 87, 90, 31, 45, 46, 86, 19 }
{ 0, 15, 23, 24, 26, 46, 51, 67, 118, 136, 150, 169, 191, 197, 213, 214, 223, 228, 251, 287, 314, 318, 322, 355, 381, 386, 390 }
{ 93, 19, 42, 20, 77, 84, 62, 45, 73, 13, 57, 56, 50, 100, 60, 46, 33, 89, 21, 35, 87, 67, 10, 55, 53, 25, 16 }
Returns: 7.15226878528933E13
{ 0, 35, 66, 77, 86, 96, 133, 157, 179, 196, 204, 213, 238, 239, 272, 298, 301, 307, 313, 320, 353, 354, 363, 369, 378, 387, 390 }
{ 96, 71, 18, 58, 81, 57, 49, 10, 19, 90, 88, 24, 62, 77, 56, 54, 41, 50, 48, 25, 92, 70, 64, 33, 68, 16, 43 }
{ 0, 2, 12, 24, 34, 48, 55, 83, 105, 110, 130, 144, 174, 185, 193, 231, 232, 247, 252, 272, 285, 286, 293, 294, 317, 324, 346, 348, 381, 390 }
{ 82, 11, 46, 44, 78, 69, 91, 87, 95, 60, 94, 77, 16, 75, 63, 89, 30, 65, 18, 48, 14, 40, 47, 64, 56, 43, 10, 90, 68, 61 }
Returns: 2.7477531762324715E10
{ 0, 6, 13, 23, 47, 59, 67, 69, 93, 111, 121, 144, 148, 159, 163, 189, 197, 199, 212, 222, 239, 244, 254, 258, 266, 273, 283, 286, 308, 313, 318, 321, 326, 333, 344, 351, 358, 364, 382, 385, 390 }
{ 33, 22, 30, 25, 75, 77, 42, 48, 92, 69, 62, 84, 29, 24, 73, 56, 11, 82, 17, 39, 34, 45, 31, 43, 38, 100, 88, 78, 37, 28, 20, 49, 58, 35, 10, 14, 26, 27, 36, 13, 79 }
{ 0, 5, 9, 12, 17, 18, 25, 54, 58, 70, 91, 102, 112, 115, 119, 129, 139, 145, 148, 153, 162, 191, 193, 197, 204, 212, 229, 231, 233, 237, 245, 266, 270, 276, 283, 293, 296, 297, 303, 310, 311, 337, 338, 351, 360, 376, 377, 386, 389, 390 }
{ 31, 21, 86, 66, 65, 12, 96, 77, 78, 22, 95, 36, 29, 85, 11, 14, 61, 83, 82, 97, 75, 70, 44, 88, 67, 55, 64, 53, 57, 25, 28, 19, 74, 24, 20, 41, 100, 10, 59, 43, 72, 69, 42, 84, 73, 30, 37, 71, 32, 87 }
Returns: 3.6793494047779894E14
{ 0, 15, 34, 38, 48, 69, 74, 77, 84, 86, 94, 111, 114, 120, 128, 133, 135, 136, 137, 151, 154, 156, 172, 181, 194, 197, 202, 210, 234, 246, 252, 278, 279, 281, 296, 318, 319, 320, 324, 326, 327, 329, 333, 338, 340, 358, 372, 373, 379, 390 }
{ 46, 55, 60, 26, 35, 98, 93, 44, 11, 83, 54, 56, 97, 100, 41, 48, 10, 79, 27, 50, 21, 59, 74, 58, 34, 80, 94, 20, 32, 89, 53, 95, 28, 12, 92, 24, 43, 91, 62, 71, 25, 66, 81, 47, 42, 77, 57, 63, 78, 36 }
{ 0, 9, 22, 25, 32, 51, 64, 69, 70, 73, 77, 102, 106, 123, 128, 130, 131, 137, 176, 185, 189, 203, 221, 226, 229, 230, 232, 274, 276, 280, 298, 311, 314, 329, 383, 390 }
{ 42, 48, 76, 92, 37, 96, 66, 23, 86, 39, 81, 95, 21, 69, 88, 97, 40, 10, 83, 93, 18, 85, 56, 72, 90, 59, 82, 60, 94, 16, 71, 28, 91, 58, 57, 63 }
Returns: 3.206471753604965E14
{ 0, 5, 13, 23, 41, 45, 53, 55, 60, 66, 68, 106, 112, 130, 145, 166, 179, 180, 193, 197, 199, 210, 211, 212, 213, 215, 229, 254, 281, 293, 306, 307, 308, 326, 353, 362, 365, 376, 388, 390 }
{ 91, 50, 32, 57, 93, 15, 99, 28, 18, 42, 13, 64, 63, 65, 61, 83, 36, 14, 60, 47, 35, 34, 87, 86, 16, 46, 30, 58, 43, 41, 75, 49, 45, 69, 97, 44, 25, 19, 62, 68 }
{ 0, 3, 6, 24, 25, 43, 48, 50, 58, 60, 69, 79, 80, 81, 92, 93, 96, 101, 107, 109, 110, 124, 126, 128, 131, 136, 167, 171, 197, 198, 223, 228, 229, 243, 252, 264, 267, 271, 284, 296, 297, 298, 309, 312, 327, 336, 348, 375, 376, 390 }
{ 63, 49, 81, 27, 35, 72, 79, 92, 73, 86, 17, 20, 42, 75, 64, 90, 51, 58, 36, 21, 71, 57, 85, 91, 26, 65, 68, 98, 48, 50, 33, 53, 60, 82, 77, 56, 44, 10, 16, 70, 67, 46, 93, 11, 31, 18, 97, 66, 83, 30 }
Returns: 1.5646031875789543E13
{ 0, 20, 41, 74, 186, 210, 221, 273, 345, 347, 365, 390 }
{ 88, 39, 98, 29, 12, 26, 65, 24, 16, 69, 53, 62 }
{ 0, 25, 26, 37, 90, 109, 111, 130, 170, 183, 209, 212, 216, 217, 221, 234, 235, 236, 237, 252, 265, 273, 278, 340, 346, 348, 353, 360, 390 }
{ 41, 62, 90, 76, 63, 19, 37, 24, 94, 67, 97, 13, 43, 95, 64, 72, 40, 74, 61, 17, 83, 88, 91, 69, 75, 71, 96, 59, 68 }
Returns: 8.438064121771981E7
{ 0, 10, 12, 62, 66, 107, 123, 136, 179, 192, 204, 234, 248, 259, 275, 350, 353, 365, 390 }
{ 75, 32, 67, 36, 64, 59, 86, 99, 47, 81, 55, 82, 66, 80, 70, 68, 25, 21, 34 }
{ 0, 14, 20, 36, 51, 57, 61, 76, 83, 92, 94, 111, 132, 143, 149, 168, 192, 211, 215, 216, 222, 223, 227, 270, 274, 284, 295, 313, 318, 358, 378, 382, 383, 390 }
{ 19, 50, 18, 51, 52, 56, 13, 93, 75, 92, 12, 76, 49, 77, 17, 44, 40, 39, 71, 34, 53, 29, 96, 89, 94, 41, 88, 65, 78, 28, 32, 35, 47, 15 }
Returns: 7.635975248887326E8
{ 0, 167, 339, 390 }
{ 32, 91, 46, 17 }
{ 0, 12, 23, 31, 32, 59, 82, 89, 92, 101, 103, 106, 108, 126, 127, 135, 140, 151, 155, 170, 176, 180, 189, 200, 213, 221, 224, 234, 263, 267, 282, 286, 289, 331, 333, 358, 363, 367, 388, 390 }
{ 29, 39, 62, 17, 85, 26, 99, 76, 69, 30, 21, 18, 23, 73, 40, 70, 59, 64, 100, 25, 75, 12, 13, 51, 52, 41, 33, 88, 57, 74, 11, 98, 54, 53, 97, 78, 37, 19, 82, 38 }
Returns: 2.485015162641765E9
{ 0, 7, 25, 30, 41, 47, 62, 65, 68, 81, 84, 87, 90, 103, 114, 122, 151, 153, 154, 169, 172, 180, 191, 203, 204, 231, 233, 239, 248, 252, 253, 261, 273, 305, 306, 314, 315, 323, 327, 334, 337, 343, 355, 363, 372, 378, 390 }
{ 50, 41, 71, 80, 63, 37, 91, 12, 18, 11, 39, 79, 25, 98, 32, 70, 73, 77, 52, 86, 10, 85, 64, 59, 45, 58, 61, 44, 46, 48, 90, 14, 53, 20, 36, 81, 88, 68, 75, 33, 100, 51, 17, 22, 43, 16, 66 }
{ 0, 9, 10, 19, 23, 27, 38, 39, 54, 59, 60, 64, 73, 83, 84, 103, 110, 112, 123, 126, 134, 154, 157, 160, 167, 173, 185, 207, 210, 217, 228, 233, 249, 281, 292, 300, 304, 318, 335, 337, 345, 347, 350, 355, 364, 365, 369, 378, 383, 390 }
{ 17, 32, 14, 36, 98, 72, 35, 55, 18, 42, 61, 71, 64, 69, 62, 56, 10, 90, 30, 34, 86, 87, 20, 83, 21, 49, 22, 75, 44, 31, 94, 16, 15, 48, 59, 37, 57, 66, 76, 29, 38, 85, 79, 67, 28, 50, 40, 97, 45, 58 }
Returns: 3.0256727455571152E16
{ 0, 31, 43, 51, 52, 56, 59, 75, 85, 90, 102, 112, 120, 124, 134, 139, 147, 150, 151, 154, 169, 170, 177, 193, 196, 200, 218, 246, 256, 263, 272, 273, 274, 278, 279, 280, 281, 301, 305, 315, 329, 340, 342, 347, 352, 371, 372, 379, 383, 390 }
{ 42, 50, 97, 68, 87, 30, 40, 46, 71, 32, 22, 54, 76, 48, 29, 25, 51, 73, 57, 17, 61, 86, 70, 100, 19, 21, 52, 83, 85, 93, 38, 18, 37, 24, 36, 89, 33, 35, 69, 63, 94, 99, 47, 43, 59, 27, 77, 34, 12, 82 }
{ 0, 2, 5, 98, 138, 189, 218, 220, 249, 307, 384, 390 }
{ 53, 76, 90, 43, 70, 71, 98, 36, 32, 28, 52, 27 }
Returns: 5.406014624753604E9
{ 0, 12, 38, 41, 53, 59, 76, 84, 93, 95, 98, 105, 107, 114, 124, 142, 146, 159, 176, 204, 205, 218, 219, 228, 233, 241, 256, 261, 268, 272, 278, 281, 285, 296, 325, 333, 366, 370, 376, 386, 390 }
{ 48, 53, 59, 40, 29, 80, 15, 18, 93, 94, 44, 52, 90, 22, 70, 82, 75, 66, 26, 95, 88, 23, 78, 85, 32, 81, 98, 100, 58, 36, 65, 25, 13, 38, 57, 43, 54, 45, 35, 27, 12 }
{ 0, 5, 9, 17, 20, 22, 23, 31, 53, 68, 69, 77, 96, 97, 99, 128, 138, 139, 140, 144, 155, 161, 176, 195, 205, 217, 230, 237, 238, 282, 284, 305, 322, 325, 329, 342, 350, 361, 364, 366, 368, 375, 387, 389, 390 }
{ 62, 58, 18, 98, 16, 72, 36, 95, 59, 49, 17, 44, 12, 94, 43, 53, 89, 46, 11, 92, 38, 26, 97, 80, 60, 96, 64, 55, 13, 20, 90, 34, 87, 91, 81, 83, 65, 68, 57, 19, 51, 76, 48, 14, 82 }
Returns: 1.630452585102564E15
{ 0, 20, 35, 42, 49, 97, 148, 162, 183, 193, 206, 209, 236, 271, 277, 284, 294, 336, 361, 376, 383, 386, 390 }
{ 98, 35, 64, 52, 51, 47, 66, 14, 30, 34, 65, 86, 79, 12, 74, 87, 62, 25, 90, 99, 72, 19, 81 }
{ 0, 5, 12, 15, 16, 36, 44, 57, 64, 65, 66, 69, 78, 84, 87, 99, 112, 122, 126, 157, 165, 174, 179, 182, 188, 190, 198, 200, 210, 215, 218, 233, 238, 253, 264, 269, 270, 271, 274, 297, 299, 314, 328, 332, 341, 368, 375, 382, 388, 390 }
{ 35, 20, 17, 38, 50, 70, 29, 56, 37, 83, 34, 21, 32, 47, 59, 76, 82, 95, 25, 46, 15, 52, 10, 66, 98, 51, 41, 45, 78, 63, 96, 36, 16, 89, 18, 11, 99, 58, 61, 100, 90, 44, 75, 57, 62, 39, 73, 81, 68, 22 }
Returns: 1.3582093078193777E12
{ 0, 29, 31, 35, 44, 46, 92, 103, 124, 140, 159, 161, 166, 175, 199, 208, 217, 235, 240, 243, 245, 246, 254, 260, 277, 295, 304, 314, 320, 322, 333, 343, 345, 351, 362, 366, 371, 373, 376, 383, 387, 390 }
{ 43, 24, 91, 23, 55, 37, 11, 74, 46, 53, 75, 93, 20, 41, 85, 12, 83, 63, 22, 94, 73, 33, 40, 13, 18, 67, 38, 15, 65, 81, 32, 97, 19, 61, 77, 21, 86, 28, 17, 29, 100, 76 }
{ 0, 7, 12, 16, 23, 26, 28, 41, 43, 65, 67, 71, 74, 96, 153, 166, 170, 176, 177, 186, 189, 209, 213, 237, 244, 257, 274, 287, 290, 307, 310, 313, 333, 334, 335, 336, 339, 341, 342, 349, 358, 359, 372, 376, 378, 380, 381, 386, 388, 390 }
{ 98, 65, 90, 22, 44, 78, 79, 93, 81, 53, 71, 34, 61, 94, 67, 60, 69, 62, 92, 52, 33, 36, 80, 66, 48, 64, 42, 85, 100, 49, 95, 91, 30, 73, 37, 15, 10, 75, 83, 16, 82, 72, 97, 77, 43, 32, 50, 14, 17, 99 }
Returns: 5.068076597286777E15
{ 0, 16, 30, 88, 130, 188, 234, 335, 390 }
{ 20, 66, 39, 46, 28, 31, 55, 49, 60 }
{ 0, 4, 13, 165, 181, 234, 266, 284, 359, 366, 390 }
{ 82, 64, 54, 78, 38, 11, 13, 56, 51, 75, 92 }
Returns: 88262.34470274611
{ 0, 8, 9, 12, 13, 28, 40, 43, 50, 56, 68, 69, 77, 85, 101, 113, 115, 118, 136, 169, 185, 192, 202, 209, 219, 221, 237, 238, 254, 271, 299, 314, 315, 320, 322, 326, 359, 361, 374, 390 }
{ 77, 31, 65, 12, 28, 81, 99, 24, 49, 82, 25, 43, 35, 95, 37, 36, 34, 58, 71, 89, 33, 44, 92, 88, 73, 15, 54, 78, 68, 16, 87, 98, 63, 74, 40, 29, 13, 84, 69, 79 }
{ 0, 52, 83, 86, 89, 122, 123, 124, 149, 155, 178, 243, 259, 265, 337, 342, 352, 356, 369, 382, 390 }
{ 49, 51, 63, 83, 37, 54, 97, 42, 16, 20, 95, 82, 87, 21, 58, 80, 90, 89, 93, 43, 79 }
Returns: 3.863018255039785E10
{ 0, 19, 28, 40, 41, 44, 45, 56, 58, 59, 83, 89, 96, 97, 107, 128, 137, 149, 153, 158, 161, 173, 186, 194, 200, 201, 202, 203, 215, 218, 231, 239, 244, 257, 272, 281, 282, 295, 296, 304, 308, 329, 337, 360, 363, 365, 372, 379, 381, 390 }
{ 12, 52, 94, 91, 89, 51, 32, 14, 21, 67, 90, 28, 22, 85, 58, 65, 81, 33, 93, 66, 37, 60, 25, 46, 56, 92, 80, 77, 27, 98, 55, 88, 97, 75, 45, 68, 78, 49, 10, 40, 41, 17, 76, 30, 64, 62, 74, 29, 44, 36 }
{ 0, 3, 14, 23, 53, 56, 58, 60, 63, 75, 79, 85, 91, 109, 110, 124, 134, 141, 145, 152, 163, 182, 188, 198, 204, 213, 220, 236, 241, 242, 254, 265, 269, 280, 283, 285, 286, 290, 300, 308, 310, 316, 330, 369, 370, 373, 377, 384, 385, 390 }
{ 92, 51, 72, 71, 31, 99, 69, 57, 96, 90, 95, 60, 49, 45, 93, 52, 68, 13, 58, 100, 29, 97, 34, 36, 65, 76, 18, 19, 24, 55, 40, 63, 56, 33, 21, 39, 86, 30, 73, 28, 84, 98, 50, 48, 27, 74, 88, 54, 44, 22 }
Returns: 3.476461287153946E14
{ 0, 18, 24, 25, 127, 137, 191, 211, 213, 229, 252, 254, 283, 293, 310, 328, 341, 348, 350, 390 }
{ 70, 61, 68, 23, 95, 12, 88, 54, 43, 85, 51, 29, 27, 69, 97, 84, 52, 14, 15, 28 }
{ 0, 43, 44, 67, 104, 164, 172, 206, 226, 250, 270, 278, 286, 291, 306, 307, 390 }
{ 58, 25, 96, 42, 49, 70, 26, 35, 64, 81, 43, 47, 69, 75, 46, 91, 79 }
Returns: 9376281.057734467
{ 0, 4, 45, 59, 66, 81, 133, 156, 204, 213, 224, 303, 330, 390 }
{ 58, 53, 43, 34, 15, 98, 90, 61, 21, 39, 96, 59, 11, 66 }
{ 0, 390 }
{ 40, 96 }
Returns: 359222.5457267977
{ 0, 12, 33, 52, 55, 58, 69, 77, 85, 98, 112, 115, 120, 123, 128, 139, 156, 166, 175, 179, 207, 211, 214, 224, 232, 233, 235, 240, 243, 244, 249, 258, 259, 262, 266, 268, 285, 294, 295, 299, 300, 309, 314, 316, 330, 335, 336, 349, 351, 390 }
{ 79, 89, 46, 11, 90, 61, 39, 93, 18, 60, 71, 66, 67, 86, 82, 72, 75, 33, 100, 24, 62, 55, 99, 74, 98, 26, 15, 91, 73, 47, 19, 92, 59, 68, 36, 94, 51, 32, 22, 42, 17, 64, 65, 76, 14, 54, 85, 21, 80, 97 }
{ 0, 11, 20, 24, 40, 43, 52, 68, 72, 82, 98, 100, 104, 105, 117, 120, 122, 128, 129, 130, 133, 154, 161, 174, 191, 247, 249, 253, 257, 259, 264, 268, 319, 333, 354, 367, 375, 378, 380, 390 }
{ 45, 22, 18, 55, 99, 79, 37, 12, 60, 51, 25, 13, 95, 61, 30, 58, 70, 74, 32, 52, 53, 69, 88, 40, 72, 62, 28, 71, 92, 16, 26, 11, 49, 82, 76, 27, 54, 39, 34, 91 }
Returns: 1.2774096458920778E15
{ 0, 4, 13, 65, 79, 83, 89, 94, 103, 123, 143, 145, 148, 150, 151, 161, 171, 184, 197, 199, 201, 207, 219, 236, 250, 253, 255, 259, 264, 265, 275, 285, 288, 291, 292, 294, 297, 299, 306, 307, 319, 345, 351, 361, 369, 371, 379, 381, 388, 390 }
{ 10, 55, 29, 100, 91, 24, 49, 93, 61, 84, 27, 25, 92, 85, 52, 31, 95, 19, 77, 16, 50, 45, 63, 26, 51, 83, 81, 46, 17, 79, 35, 21, 99, 38, 82, 73, 74, 11, 28, 48, 53, 72, 56, 18, 94, 30, 14, 44, 68, 22 }
{ 0, 5, 17, 19, 21, 32, 36, 38, 44, 52, 54, 57, 62, 63, 88, 90, 97, 113, 139, 140, 148, 152, 166, 168, 190, 192, 199, 209, 231, 253, 257, 262, 275, 293, 300, 307, 317, 323, 327, 330, 332, 334, 340, 344, 350, 356, 375, 377, 389, 390 }
{ 45, 21, 29, 57, 62, 98, 31, 92, 70, 37, 38, 58, 27, 25, 43, 35, 75, 44, 15, 13, 59, 63, 90, 86, 76, 56, 96, 19, 95, 66, 51, 52, 74, 68, 48, 82, 20, 39, 91, 23, 60, 42, 88, 69, 73, 64, 12, 54, 50, 80 }
Returns: 5.0075698346843256E16
{ 0, 35, 81, 127, 128, 136, 171, 181, 189, 194, 217, 224, 252, 390 }
{ 62, 24, 61, 89, 44, 98, 80, 28, 75, 100, 25, 38, 94, 50 }
{ 0, 3, 4, 8, 13, 16, 27, 30, 41, 52, 88, 90, 96, 100, 107, 110, 115, 118, 134, 159, 162, 166, 168, 172, 175, 182, 204, 205, 213, 225, 230, 248, 250, 280, 287, 297, 299, 306, 310, 315, 321, 338, 339, 341, 354, 358, 360, 367, 383, 390 }
{ 95, 68, 48, 36, 30, 80, 34, 75, 32, 71, 82, 21, 57, 16, 67, 92, 100, 64, 50, 46, 53, 94, 18, 60, 19, 87, 10, 44, 37, 56, 22, 11, 93, 79, 61, 25, 54, 42, 31, 55, 83, 91, 76, 26, 88, 33, 73, 65, 13, 23 }
Returns: 1.5327610827701487E12
{ 0, 4, 14, 16, 18, 33, 56, 62, 67, 80, 95, 99, 104, 121, 123, 142, 147, 150, 164, 179, 180, 181, 189, 193, 201, 217, 255, 256, 264, 269, 272, 274, 281, 283, 314, 333, 370, 374, 382, 383, 387, 388, 390 }
{ 47, 56, 85, 27, 28, 75, 41, 77, 95, 69, 39, 17, 38, 23, 88, 57, 70, 42, 52, 97, 19, 80, 53, 51, 25, 62, 55, 81, 64, 74, 40, 84, 59, 44, 82, 35, 67, 79, 45, 94, 12, 92, 36 }
{ 0, 10, 51, 61, 71, 77, 83, 84, 101, 103, 107, 114, 128, 149, 151, 158, 166, 176, 183, 208, 220, 221, 234, 238, 243, 261, 268, 277, 290, 295, 299, 307, 309, 313, 333, 345, 361, 367, 389, 390 }
{ 17, 32, 11, 71, 100, 75, 31, 85, 13, 22, 47, 89, 40, 88, 39, 33, 82, 55, 42, 19, 69, 37, 79, 84, 65, 26, 21, 50, 70, 83, 15, 48, 64, 93, 57, 67, 35, 87, 27, 74 }
Returns: 7.210085690124384E13
{ 0, 28, 37, 55, 56, 68, 69, 73, 104, 139, 174, 193, 230, 231, 238, 241, 250, 252, 261, 270, 291, 307, 313, 340, 352, 365, 371, 374, 378, 379, 390 }
{ 21, 38, 49, 19, 88, 37, 61, 36, 95, 45, 54, 47, 35, 23, 31, 10, 78, 89, 24, 93, 42, 50, 67, 94, 27, 52, 82, 28, 98, 41, 44 }
{ 0, 4, 17, 390 }
{ 28, 58, 62, 20 }
Returns: 1.2431895772449432E8