-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path536.cpp
More file actions
104 lines (80 loc) · 2.18 KB
/
536.cpp
File metadata and controls
104 lines (80 loc) · 2.18 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <stdio.h>
void quicksort(int input[], int start,int end)
{
if ( start < end ){
int k = start;
int i = start + 1;
for ( ;i <= end; i++){
if ( input[i] < input[start] ){
int temp = input[++k];
input[k] = input[i];
input[i] = temp;
}
}
int temp = input[k];
input[k] = input[start];
input[start] = temp;
quicksort(input, start, k - 1);
quicksort(input, k + 1, end);
}
}
class MergersDivOne
{
public:
double findMaximum(int* revenues, int num);
};
double MergersDivOne::findMaximum(int* revenues, int num)
{
if ( revenues == NULL )
return 0;
quicksort(revenues, 0, num - 1);
double result = revenues[0];
for (int i = 1; i < num; i++){
result = ( result + revenues[i] ) / 2;
}
return result;
}
class RollingDiceDivOne
{
public:
long mostLikely(int* dice, int num);
};
long RollingDiceDivOne::mostLikely(int* dice, int num)
{
if ( dice == NULL )
return 0;
quicksort(dice, 0, num - 1);
int total = 0;
double tmp = 0;
for ( int i = 0 ; i < num; i++ ){
total += dice[i];
tmp += dice[i] + 1;
}
total++;
if ( tmp / 2 < total ) return tmp/2;
else return total;
}
class BinaryPolynomialDivOne
{
public:
int findCoefficient(int a,int num, long m, long k);
};
int BinaryPolynomialDivOne::findCoefficient(int a,int num, long m, long k)
{
}
int main()
{
////Level one
//MergersDivOne md;
////int input[3] = {5, -7, 3};
//int input[6] = {10, -10, 100, -100, 1000, -1000};
//double result = md.findMaximum(input, 6);
//printf("result is %f\n",result);
//Level two
int input[20] = {382828264, 942663792, 291832707, 887961277, 546603677, 545185615, 146267547, 6938117, 167567032, 84232402,
700781193, 452172304, 816532384, 951089120, 448136091, 280899512, 256093435, 39595226, 631504901, 154772240};
RollingDiceDivOne rd;
long result = rd.mostLikely(input, 20);
printf("result is %d\n", result);
return 0;
}