//------------------------------------------------------------------------------------------------------------------
// Explanation
//------------------------------------------------------------------------------------------------------------------
There are thirteen parameters in the main function of a simulation file. 
To replicate simulation results, it is required to determine the values of parameters, compile a C++ simulation file, and run an .exe file. 
Below is an explanation of thirteen parameters. 
For details of each parameter, please refer to the related paper (https://arxiv.org/abs/2011.13813).

//------------------------------------------------------------------------------------------------------------------
// Parameters
//------------------------------------------------------------------------------------------------------------------
N: Number of agents.
k: Average degree size of a generated ring network. Agents are connected with k/2 neighbors on both sides.
p: Nkp/2 random links are added to a ring network to generate small-world networks.
x_media: Positions of mass media. Opinions of two mass media are x_media and -x_media.
p_media: Interaction frequencies with mass media. An interaction with a neighbor occurs at a probability of 1 - p_media, whereas interaction with mass media occurrs at a probability of p_media.
delta: Size of error in opinion modifications. 
mu: Intensity of opinion assimilation
x_start: Initial values of agents' opinions. Opinions follow a uniform distribution, U(-x_start,  x_start).
len_relax: Length of burn-in periods. Results of first len_relax * N periods will be discarded. 
len_record: After burn-in periods, simulations proceed for len_record * N periods.
thin: Record the values of interest in every thin period.
filename: Name of a result file.
rec_last: Agents' opinions at the last period will be recorded if rec_last == 1.

//------------------------------------------------------------------------------------------------------------------
// Entities in the model
//------------------------------------------------------------------------------------------------------------------
Agents
- opin: Opinion of an agent
- media: Opinion of medium an agent follows. This opinion value affects an agent's opinion if interaction with mass media occurs. This variable takes x_media or -x_media.
- neig: List of neighbors in social networks.

//------------------------------------------------------------------------------------------------------------------
// Process in each period
//------------------------------------------------------------------------------------------------------------------
In each time period
  1. one focal agent is selected randomly
  2. role_opinion is determined.
       with probability 1-p_media, role_opinion is an opinion of a randomly selected neighbor.
       with probability p_media, role_opinion is an opinion of a medium focal agent follows. 
  3-1 role_opinion affects focal agent's opinion.
        agent[focal].opin += mu * (role_opinion - agent[focal].opin);
  3-2 random error affects the focal agent's opinion.
        with probability 0.5, agent[focal].opin += delta
        with probability 0.5, agent[focal].opin -= delta

//------------------------------------------------------------------------------------------------------------------
// Initial states
//------------------------------------------------------------------------------------------------------------------
- Agents' opinions follow an uniform distribution, U(-x_start, x_start).
- Opinions of mass media agents follow (agent[].media) are randomly determined. Half of the agents follow each of the two mass media. These values are fixed.
- Small-world networks are generated. Two parameters (k and p) determine the network structure. The network structure is fixed. 

