Ci sono diverse cose da fare.
Iniziamo con la piu' intelligente: la struttura dati Bag e' una struttura dati che si comporta come un Set, cioe' un insieme, in cui gli elementi sono presenti un'unica volta, ma in piu' tiene traccia di quante volte l'elemento e' stato inserito nel Bag.
Come Set, {1,2,3,2,1} e' UGUALE a {1,2,3} ma anche a {3,2,1} (e qualunque altra permutazione)
Come Bag, {1,2,3,2,1} e' UGUALE a { 1:2, 2:2, 3:1 } ('1' e' presente DUE volte, '2' e' presente DUE volte, '3' e' presente UNA volta), o a qualunque permutazione di 1,2,3.
Come si implementa un Bag: dai e' semplice!
Ora, quello che devi fare e' leggere il file RIGA x RIGA, assicurarti che la riga non contenga spazi in testo o in coda, e nemmeno il ritorno a capo (CR/LF oppure LF/CR, oppure CR oppure LF a seconda se sei in Windows, Linux, Mac, Solaris, ... ogni bischero di sistema operativo ha il suo modo di indicare l'a capo)
Anche questo e' facile, se usi gli std::stream del C++.
Ed e' meglio che usi le STL e la stringa C++ e NON del C: std::string.