March Madness - When Will Two Seeds Meet?
Mathematica, 79 bytes

o={r=1,1}
Which[#==11o||#==16o,0,Tr@#==(c=32/2^r+1),r,0&lt;r++,#0[Min[#,c-#]&amp;/@#]]&amp;


The second line defines a pure function taking a pair of numbers as input and returning the appropriate nonnegative integer. Inside the Which (which is an "if-then-else" construct): #==11o||#==16o,0, deals with the play-in special cases; Tr@#==(c=32/2^r+1),r, checks whether the sum of the two team seeds is equal to the magic number that means they could be matched up in round r; and 0&lt;r++,#0[Min[#,c-#]&amp;/@#] is the "else" clause (since 0&lt;r++ will always be true here) which recursively calls the function on Min[#,c-#]&amp;/@#, which replaces any lower seed with the seed of the higher-ranked team it would have beaten to get to the next round.