With projectile motion, we can always break down the position, velocity, and acceleration into its axial components (x and y axes).
Let's name some variables:
v: ball velocity (combined); v = 28m/s
vx: ball velocity x component
vy: ball velocity y component
θ: hit angle; θ = 46
vx = vcosθ = 28cos(46) = 19.4504 m/s
vy = vsinθ = 28sin(46) = 20.1415 m/s
Now that we have the x and y components of the ball's initial velocity, let's name some more variables:
g: gravitational acceleration; g = 9.81 m/s^2
x: horizontal position
y: vertical position (height)
t: time
We can derive equations for x and y.
x = vx*t
x = 19.4504t
y = initial height + vy*t - (g/2)*t^2
y = 1.5 + 20.1415t - 4.905t^2
So when the ball lands on the building, its height is 12m, so y = 12. We can plug in 12 for y and solve for t, the time in seconds after the ball is hit.
12 = 1.5 + 20.1415t - 4.905t^2
Solving for t (you can use a few methods, such as the quadratic formula):
t = 0.6127sec or t = 3.4936sec
The earlier time represents when the ball reaches 12m when it's ascending, and the later time represents when the ball is descending. It only makes sense that the ball lands on the roof when it's descending, so we use t = 3.4936sec for the next calculation.
Now let's calculate the horizontal position x at this value of t.
x = 19.4504t = 19.4504*3.4936
x = 67.9519, rounded to 2 significant figures, that's
x = 68 m