Why can't we be friends?
We'll show that it's impossible to exceed
Why can't we be (un)friends?
First of all, un-friending is useless for friendship maximization.
Indeed, consider a sequence of valid friend or un-friend requests that includes an un-friending of participants A and B. Consider a second sequence obtained by removing this un-friend request and the friend request that added this friendship. The second sequence obtains the same end result as the first sequence while using one fewer un-friend request, and it is valid because a missing friendship does not obstruct any new friend requests.
From now on, we only consider friend requests.
Why can't we be (inverted) friends?
Actually, that was a lie.
For convenience, let's invert the notion of friendship, so that everyone starts as friends and only makes un-friend requests. (We'll only consider un-friend requests from now on, promise!)
At the start, all 100 participants are friends with every other participant. A valid un-friend request takes a 4-cycle of friends A-B-C-D(-A) and un-friends one of its edges A-D. This is equivalent to the original formulation of the problem, where our new goal is to minimize the number of friendships.
Why can't we be (time-reversed) friends?
Ok, I lied again. To establish a useful result, let's reverse time, so that we start with a small number of friendships and only make friend requests. A valid friend request takes a 3-chain of friendships A-B-C-D and adds the friendship A-D.
A useful result
Consider the undirected graph where participants are vertices and friendships are edges. Our goal is to establish that the graph will always be disconnected or bipartite if we start with fewer than 100 friendships and make friend requests.
Suppose we start with fewer than 100 friendships among our 100 participants.
We case on whether the corresponding friendship graph is connected.
Case 1: The graph is not connected. Observe that every new edge added is between two vertices that are already connected, so the graph will never be connected.
Case 2: The graph is connected. Because it has fewer edges than vertices, it must be a spanning tree. In particular, it is bipartite. Suppose we can add an edge A-D to a bipartite graph with a vertex partition into independent sets U and V. Then there exists a 3-chain A-B-C-D. If A is in U, then B is in V, C is in U, and D is in V. Conversely, if A is in V, then D is in U. Either way, the graph is still bipartite after adding the edge A-D. Therefore, our original graph will always be bipartite.
We have shown that the original graph is disconnected or bipartite, and that it will therefore always be disconnected or bipartite.
Now we can un-reverse (re-reverse?) time to get back to our original (actually inverted) problem. We start with all 100 participants being friends with every other participant. The corresponding friendship graph is a 100-clique, which is clearly connected and not bipartite, so (the contrapositive of) our useful result shows that we can never obtain fewer than 100 friendships through un-friend requests.
Finally, let's un-invert the problem. There are a total of 100 choose 2 = 4950 possible friendships among all 100 participants, so we can never exceed 4950 - 100 = 4850 friendships.