A little more information might help.
1) is this a fluid (or gas)? IOW each particle could contact all other particles, and you want to maintain a history of this?
2) two bodies (of particles), each having a contact surface, and only the particles at the surface interface. e.g. brick on a slope, fluid in a pipe, ...
3) total number of particles
4) number of particles expected to interact at any one time
5) total number of different particle pairs that interact
6) maximum total number of expected contacts between any two pairs for history recorded
There may be other pieces of information needed to answer this question.
If you have a relatively small number of particles, memory is likely not an issue, neither is performance.
If you have a large number of particles, memory requirements and performance may be an issue.
Is this a course problem for a CS program?