Show that $n ≤ 100$ if $ \{A_1,A_2,... ,A_n\}$ is a set of distinct $3$-element subsets of $\{1, 2,... , 36\}$ such that... Let $X = \{A_1,A_2,... ,A_n\}$ be a set of distinct $3$-element subsets of
$\{1, 2,... , 36\}$ such that
i) $A_i$ and $A_j$ have non-empty intersection for every $i,j$.
ii) The intersection of all the elements of $X$ is the empty set.
Show that $n ≤ 100$. How many such sets $X$ are there when $n = 100$?
Source:  BMO 2005 round 2 question.
Please help !! I am not even able to proceed with the question I tried to come up with a recurrence relation but its not working. I have only been able to figure out the number when 36 is replaced by 6, which is an easy thing to do
 A: I think I've made some progress with this, but I still haven't solved it.  I believe that the problem is a special case of this theorem (which I can't prove yet):

Let $N\ge7$ and let $X = \{A_1,A_2,... ,A_n\}$ be a family of $3-$subsets of $[N]=\{1,2,\dots,N\}$ such that
i) $A_i\cap A_j=\emptyset$ for $i\ne j$
ii) $\displaystyle{\bigcap_{i=1}^nA_i}=\emptyset$
Then $n\leq3N-8.$

Furthermore, I believe that, under the same hypotheses, every family of length $3N-8$ belongs to one of the two classes defined below.  In what follows, $a,b,c,d$ represent pairwise distinct integers between $1$ and $N$.

Class A is the set of all $3-$subsets of $[N]$ of one of the forms $\{a,b,x\},\ \{a,c,x\},\ \{b,c,x\}.$
Class B is the set of all $3-$subsets of $[N]$ that is either $\{a,b,c\}$ or of one of the forms $\{a,d,x\},\ \{b,d,x\},\ \{c,d,x\}.$

It's easy to verify that both classes satisfy the requirements and clear that there are ${N\choose3}$ families in class A and $N{N-1\choose3}$ families in class B.
I've written a python script to verify this for $N=7$ and $N=8.$  It would probably take too long to run for $N=9.$  For $N=6$ the maximum length is $10$ as expected, but there are $1018$ families.
I've been trying to prove this by induction, though I don't see how to do the basis case without a computer.  Since we can produce a family of size $3N-8$ we suppose that we have some larger family.  What I want to say is that there must be some element of $[N]$ that belongs to at most $3$ of the $3-$subsets.  (This is true for families of class A and B.)  We can assume that this element is $N$.  Removing all the $3-$subsets containing $N$ would give a family of $3-$subsets of $[N-1]$ with too many elements.  I'm also hopeful that since we know that a maximum-length family of $3-$subsets of $[N-1]$ is of class A or class B, we can infer that the family formed by adding no more than $3$ subsets containing $N$ is also of one of these forms.
If this approach is to work, we must prove that there is no family $X$ satisfying the requirements such that every element of $[N]$ belongs to at least $4$ members of $X.$  So far, I don't even know how to approach this.
Here is my python script, if anyone is interested.
'''
What is the largest family of 3-subsets of {1,2,...,N} such that
any two of them intersect, but no element is in all of them?
Find all such families.

The set of all 3-subsets containing at least 2 elements of {1,2,3}
satisfies the conditions and has 3N-8 elements, so this is a 
lower bound.
'''
from itertools import combinations

def expected(N):
    # binomial(N,3) + N*binomial(N-1,3)
    return N*(N-1)*(N-2)**2//6

N = 8
U= list(combinations(range(1,N+1),3))
highWater = 3*N-8    
S = { }  #S[k] = set of possible 3-subsets at level k
a = { }   # current solution
join ={0:list(range(1,N+1))}   #join[k] is intersection of a[1],...,a[k] 
k = 1
S[1] = U
solutions = list()
while k > 0:
    while S[k]:
        a[k] = S[k].pop(0)
        join[k] = [x for x in a[k] if x in join[k-1]]
        if not join[k]:
            if k==highWater: 
                solutions.append(list(a.values()))
            elif k > highWater:
                solutions.clear()
                highWater=k
                solutions.append(list(a.values()))
        k += 1
        S[k] = [s for s in S[k-1] if set(s) & set(a[k-1])] 
    k = k-1  # backtrack
        
print(N, "max length", highWater, len(solutions), "families", 
         expected(N), "expected") 

    
    

