-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path3 DAY OF CODE
132 lines (94 loc) · 2.62 KB
/
3 DAY OF CODE
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <bits/stdc++.h>
using namespace std;
vector<string> split_string(string);
/*
* Complete the equalStacks function below.
*/
int equalStacks(vector<int> h1, vector<int> h2, vector<int> h3)
{
int s1=0,s2=0,s3=0;
for(int i=0;i<h1.size();i++)
{
s1=s1+h1[i];
}
for(int i=0;i<h2.size();i++)
{
s2=s2+h2[i];
}
for(int i=0;i<h3.size();i++)
{
s3=s3+h3[i];
}
int l1=0,l2=0,l3=0;
while(s1!=s2||s2!=s3||s3!=s1)
{
if(s1>=s2&&s1>=s3)
s1=s1-h1[l1++];
else if(s2>=s1&&s2>=s3)
s2=s2-h2[l2++];
else if(s3>=s1&&s3>=s2)
s3=s3-h3[l3++];
}
return s3;
/*
* Write your code here.
*/
}
int main()
{
ofstream fout(getenv("OUTPUT_PATH"));
string n1N2N3_temp;
getline(cin, n1N2N3_temp);
vector<string> n1N2N3 = split_string(n1N2N3_temp);
int n1 = stoi(n1N2N3[0]);
int n2 = stoi(n1N2N3[1]);
int n3 = stoi(n1N2N3[2]);
string h1_temp_temp;
getline(cin, h1_temp_temp);
vector<string> h1_temp = split_string(h1_temp_temp);
vector<int> h1(n1);
for (int h1_itr = 0; h1_itr < n1; h1_itr++) {
int h1_item = stoi(h1_temp[h1_itr]);
h1[h1_itr] = h1_item;
}
string h2_temp_temp;
getline(cin, h2_temp_temp);
vector<string> h2_temp = split_string(h2_temp_temp);
vector<int> h2(n2);
for (int h2_itr = 0; h2_itr < n2; h2_itr++) {
int h2_item = stoi(h2_temp[h2_itr]);
h2[h2_itr] = h2_item;
}
string h3_temp_temp;
getline(cin, h3_temp_temp);
vector<string> h3_temp = split_string(h3_temp_temp);
vector<int> h3(n3);
for (int h3_itr = 0; h3_itr < n3; h3_itr++) {
int h3_item = stoi(h3_temp[h3_itr]);
h3[h3_itr] = h3_item;
}
int result = equalStacks(h1, h2, h3);
fout << result << "\n";
fout.close();
return 0;
}
vector<string> split_string(string input_string) {
string::iterator new_end = unique(input_string.begin(), input_string.end(), [] (const char &x, const char &y) {
return x == y and x == ' ';
});
input_string.erase(new_end, input_string.end());
while (input_string[input_string.length() - 1] == ' ') {
input_string.pop_back();
}
vector<string> splits;
char delimiter = ' ';
size_t i = 0;
size_t pos = input_string.find(delimiter);
while (pos != string::npos) {
splits.push_back(input_string.substr(i, pos - i));
i = pos + 1;
pos = input_string.find(delimiter, i);
}
splits.push_back(input_string.substr(i, min(pos, input_string.length()) - i + 1));
return splits;
}