The term on the right hand side is evaluated by the compiler as a signed 2 byte integer value. This leads to an overflow.
If you write an "L" after one of the two factors the compiler knows that the calculation shall be done using the type "long".
UL -> Unsigned long
r = 1200 * 50L;
Alternatively cast one of the factors as long():
r = long(1200) * 50;
On the Arduino Uno (and other ATmega based boards) an int stores a 16-bit (2-byte) value. This yields a range of -32,768 to 32,767 (minimum value of -2^15 and a maximum value of (2^15) - 1). On the Arduino Due and SAMD based boards (like MKR1000 and Zero), an int stores a 32-bit (4-byte) value. This yields a range of -2,147,483,648 to 2,147,483,647 (minimum value of -2^31 and a maximum value of (2^31) - 1).