Finding overlapping time intervals for two games
Depends on what you want. Typically programming challenges are not validated on clean code. But on correctness and efficiency.


  Use libraries:


You are having a lot of duplicate code, parsing numbers. Check out the Scanner class which has these methods builtin.

https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html

Remark: When efficiency is important, Scanner may be a lot slower than BufferedReader. In this case I still recommend putting the one time effort of creating your own custom read methods.


  Efficiency:


You are looping over all intervals. This means you have to check all intervals with each other. Hence complexity: O(N²)

This is a well known problem, you could find a lot of reading about this online if you want.


  General:


Write your overlap with less comparissons.

// overlaps when A starts before B ends AND B starts before A ends
private static boolean fight(int[] game1, int[] game2) {
    return game1[0] &lt; game2[1] &amp;&amp; game2[0] &lt; game1[1]; 
}


For readability I would recommend create a class instead of working with int[2]. Typos are sometimes difficult to track. 

class Game
{
    private int start;
    private int end;

    public Game(int start, int end)
    {
        this.start = start;
        this.end = end;
    }

    public bool overlaps(Game other)
    {
        return this.start &lt; other.end &amp;&amp; other.start &lt; this.end;
    }
}