Construct a graph with $n$ vertices representing the people and connect two vertices if the two people they represent know each other.
For a), the degree of each vertex if greater than $\frac{n}{2}$, By dirac's theorem, there is a Hamiltonian cycle. And this implies we can arrange the people in a circle so that each person knows the ones sitting next to them. Same for b). I think.
Or consider first a random arrangement of the people around the table, Suppose a neighboring pair $(A,B)$ is a hostile couple with $B$ sitting to the right of $A$, then if we can find a neighboring pair $(A'B')$ with $B'$ sitting to the right of $A'$ and $B'$ is friend with $B$ and $A'$ is a friend of $A$. we can then swap $B$ with $A'$ and that will reduce the number of hostile neighboring couples. So it remains to show $(A'B')$ exists. Well $A$ has at least $n$ friends sitting to his right, and there are $n$ sits to the right of frinds of $A$. $B$ has at most $n-1$ enemy, So there is a friend of $A$,$A'$, with $B'$ sitting right to him, a friend of $B$. Done?