Probability question about meeting people
In your last year, there are $599$ students other than yourself, and there must be at least $300$ of them that you haven't met, so fewer than $300$ that you have already met. In your first two years, you met $600$ students, and if fewer than $300$ are still in school, more than $300$ must have graduated. Thus, you succeed if and only if, in the first two years, you met more than $300$ of those ahead of you.
Since there are only $200$ students one year ahead of you, you must have met at least $101$ of the graduating seniors. Let $s$ be the number of seniors you met and $j$ be the number of juniors you met, where $j\leq300-s$. Then you met $300-s-j$ members of your own class.
In your second year, there are $j$ students in the class above you and $300-s-j$ student in your own class that you've already met, so $299+s$ strangers. Let $k$ be the number of students from the class ahead of you that you meet this year. We must have $k+j+s\geq301$, so $k\geq301-s-j$ and obviously $k$ is at most $200-j$. There remaining $300-k$ people you meet are chosen from the $299+s-(200-j)=99+s+j$ strangers who aren't one year ahead of you.
The probability of success is
$$\sum_{s=101}^{200}\sum_{j=0}^{300-s}\sum_{k=301-s-j}^{200-j}\frac{\binom{200}{s}\binom{200}{j}\binom{199}{300-s-j}}{\binom{599}{300}}\frac{\binom{200-j}{k}\binom{99+s+j}{300-k}}{\binom{299+s}{300}}$$
I wrote a python script to evaluate this.
from math import factorial
def choose(n,m):
if m > n:
return 0
return factorial(n)//(factorial(m)*factorial(n-m))
choices = choose(599, 300)
prob = sum(choose(200,s)*choose(200,j)*choose(199,300-s-j)/choices*\
choose(200-j,k)*choose(99+s+j,300-k)/choose(299+s,300)\
for s in range(101,201) for j in range(301-s) for k in range(301-s-j,201-j))
print(prob)
The script output
4.296291459801449e-06
so if I haven't made any mistakes, the probability is a little less than $4.3\cdot10^{-6}$.