Skip to content

Commit b8fd7c4

Browse files
committed
srm 625 div 2 250
1 parent 7f893f6 commit b8fd7c4

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed

AddMultiply.cpp

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <iostream>
2+
#include <sstream>
3+
#include <vector>
4+
#include <algorithm>
5+
#include <set>
6+
#include <map>
7+
using namespace std;
8+
9+
class AddMultiply {
10+
public:
11+
vector <int> makeExpression(int y)
12+
{
13+
vector<int> v(3);
14+
15+
for(int i = -1000; i <= 1000; i++)
16+
for(int j = -1000; j <= 1000; j++)
17+
for(int k = -1000; k <= 100; k++){
18+
19+
if(i && j&& k && (i != 1) && (j != 1) && (k != 1)){
20+
if((i*j + k) == y){
21+
v[0] = i;
22+
v[1] = j;
23+
v[2] = k;
24+
return v;
25+
}
26+
}
27+
28+
}
29+
}
30+
31+
32+
};
33+

AddMultiply.txt

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
PROBLEM STATEMENT
2+
You are given an int y.
3+
We are looking for any vector <int> x that satisfies the following constraints:
4+
5+
x has exactly three elements
6+
( x[0] * x[1] ) + x[2] = y
7+
Each x[i] must be between -1000 and 1000, inclusive.
8+
No x[i] can be equal to 0 or 1.
9+
10+
Find and return one such x.
11+
12+
If there are multiple valid solutions, you may return any of them.
13+
You may assume that for our constraints on y (specified below) at least one valid x always exists.
14+
15+
DEFINITION
16+
Class:AddMultiply
17+
Method:makeExpression
18+
Parameters:int
19+
Returns:vector <int>
20+
Method signature:vector <int> makeExpression(int y)
21+
22+
23+
CONSTRAINTS
24+
-y will be between 0 and 500, inclusive.
25+
26+
27+
EXAMPLES
28+
29+
0)
30+
6
31+
32+
Returns: {2, 2, 2 }
33+
34+
2*2 + 2 = 6
35+
36+
Note that this is one of many possible solutions. Another solution is:
37+
38+
3*3 + (-3) = 6
39+
40+
41+
1)
42+
11
43+
44+
Returns: {2, 3, 5 }
45+
46+
47+
48+
2)
49+
0
50+
51+
Returns: {7, 10, -70 }
52+
53+
Note that 0 and 1 are not allowed, thus a result like 0 * 0 + 0 would be incorrect.
54+
55+
3)
56+
500
57+
58+
Returns: {-400, -3, -700 }
59+
60+
Some or all of the returned numbers may be negative.
61+
62+
4)
63+
2
64+
65+
Returns: {2, 2, -2 }
66+
67+
68+
69+
5)
70+
5
71+
72+
Returns: {5, 2, -5 }
73+
74+

0 commit comments

Comments
 (0)