-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStableRoommates.cpp
74 lines (68 loc) · 6.56 KB
/
StableRoommates.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include<iostream>
#include<set>
#include<map>
#include<cstring>
#include<string>
#include<vector>
using namespace std;
class StableRoommates
{
void deleteFromTable(string x, string y);
void deleteFrom(int st, int en, string x);
public:
//Vertex stores all the names, Table stores the preference table, and Rank store the rank of person b in a's Preference List
set<string> Vertex;
map<string, vector<string> > Table;
map< pair <string, string>, long long> Rank;
set<pair<string, string>> mates;
map<pair<string, string>, bool> Exist;
void phase1();
void phase2();
};
inline void StableRoommates::deleteFromTable(string x, string y)
{
Table[x][Rank[make_pair(x, y)] - 1] = "";
Exist[make_pair(x, y)] = false;
}
void StableRoommates::deleteFrom(int st, int end, string y) {
for (int i = st; i < end; i++)
{
if (Table[y][i] != "") //if has not been deleted
{
string z = Table[y][i];
if (Exist[make_pair(z, y)]) deleteFromTable(z, y);
deleteFromTable(y, z);
}
}
}
void StableRoommates::phase1()
{
}
void StableRoommates::phase2()
{
}
int main(void) {
StableRoommates S;
S.Table["윤다영"] = vector <string>{ "오지영", "이수빈", "예링", "이성우", "한가희", "양성민", "김정은", "고병찬", "임규민", "이창모", "이하늘", "김민기", "강희원", "이혜림", "강미주", "민경환", "김은호", "김서영", "김동현", "김나영", "김은채" };
S.Table["강미주"] = vector <string>{ "김동현", "이수빈", "임규민", "이혜림", "이성우", "김정은", "김은호", "강희원", "양성민", "이창모", "오지영", "김나영", "김서영", "이하늘", "예링", "한가희", "윤다영", "김은채", "김민기", "민경환", "고병찬" };
S.Table["고병찬"] = vector <string>{ "이성우", "예링", "오지영", "양성민", "윤다영", "김민기", "이수빈", "이창모", "강희원", "김정은", "한가희", "임규민", "이혜림", "김서영", "민경환", "강미주", "이하늘", "김나영", "김동현", "김은호", "김은채" };
S.Table["이창모"] = vector <string>{ "양성민", "이수빈", "예링", "임규민", "오지영", "이성우", "김정은", "민경환", "윤다영", "이하늘", "한가희", "고병찬", "강미주", "강희원", "김민기", "김동현", "이혜림", "김은호", "김나영", "김은채", "김서영" };
S.Table["이성우"] = vector <string>{ "고병찬", "예링", "이수빈", "오지영", "김민기", "양성민", "윤다영", "이창모", "한가희", "임규민", "강희원", "김정은", "이혜림", "강미주", "민경환", "이하늘", "김나영", "김서영", "김동현", "김은호", "김은채" };
S.Table["김동현"] = vector <string>{ "이혜림", "강미주", "김정은", "임규민", "이수빈", "김은호", "김은채", "강희원", "김나영", "양성민", "이창모", "이성우", "이하늘", "한가희", "윤다영", "오지영", "예링", "고병찬", "김민기", "민경환", "김서영" };
S.Table["예링"] = vector <string>{ "오지영", "이성우", "윤다영", "고병찬", "이수빈", "이창모", "양성민", "강희원", "한가희", "김민기", "민경환", "김정은", "임규민", "강미주", "이하늘", "이혜림", "김은호", "김동현", "김나영", "김서영", "김은채" };
S.Table["김정은"] = vector <string>{ "강희원", "이혜림", "오지영", "김동현", "이수빈", "윤다영", "예링", "이성우", "김은호", "강미주", "이창모", "한가희", "양성민", "김나영", "김은채", "고병찬", "이하늘", "임규민", "김서영", "민경환", "김민기" };
S.Table["민경환"] = vector <string>{ "김민기", "이하늘", "예링", "오지영", "이창모", "이성우", "이수빈", "김은호", "김나영", "한가희", "강희원", "양성민", "임규민", "윤다영", "고병찬", "김정은", "김서영", "강미주", "김은채", "김동현", "이혜림" };
S.Table["한가희"] = vector <string>{ "이수빈", "오지영", "윤다영", "이성우", "예링", "강희원", "김정은", "이창모", "민경환", "양성민", "김민기", "임규민", "고병찬", "강미주", "이하늘", "김동현", "이혜림", "김은호", "김서영", "김나영", "김은채" };
S.Table["강희원"] = vector <string>{ "김정은", "오지영", "예링", "이혜림", "이성우", "김동현", "이수빈", "한가희", "김은호", "강미주", "김나영", "윤다영", "이창모", "고병찬", "민경환", "양성민", "김은채", "임규민", "김민기", "이하늘", "김서영" };
S.Table["임규민"] = vector <string>{ "양성민", "이수빈", "이창모", "강미주", "김동현", "이성우", "윤다영", "이하늘", "예링", "오지영", "이혜림", "김민기", "한가희", "고병찬", "김은호", "김정은", "민경환", "강희원", "김나영", "김은채", "김서영" };
S.Table["김은호"] = vector <string>{ "김나영", "김은채", "이하늘", "김민기", "김동현", "이혜림", "김정은", "강미주", "이수빈", "민경환", "강희원", "김서영", "임규민", "이성우", "오지영", "양성민", "윤다영", "예링", "이창모", "한가희", "고병찬" };
S.Table["김민기"] = vector <string>{ "민경환", "이성우", "이하늘", "김나영", "예링", "이수빈", "김은호", "오지영", "양성민", "고병찬", "김서영", "윤다영", "이창모", "한가희", "임규민", "강희원", "강미주", "김정은", "김은채", "이혜림", "김동현" };
S.Table["오지영"] = vector <string>{ "예링", "윤다영", "이성우", "이수빈", "한가희", "이창모", "강희원", "김정은", "양성민", "고병찬", "민경환", "김민기", "임규민", "이하늘", "강미주", "이혜림", "김은호", "김동현", "김서영", "김나영", "김은채" };
S.Table["이혜림"] = vector <string>{ "김동현", "김정은", "강미주", "김나영", "강희원", "이수빈", "김은호", "이성우", "김은채", "임규민", "양성민", "고병찬", "윤다영", "김서영", "이하늘", "이창모", "예링", "오지영", "한가희", "김민기", "민경환" };
S.Table["김나영"] = vector <string>{ "김은호", "김민기", "김은채", "이혜림", "김동현", "민경환", "강희원", "김서영", "김정은", "이하늘", "강미주", "이성우", "이수빈", "임규민", "양성민", "고병찬", "예링", "이창모", "오지영", "한가희", "윤다영" };
S.Table["양성민"] = vector <string>{ "임규민", "이창모", "이성우", "이수빈", "예링", "윤다영", "오지영", "고병찬", "김민기", "강미주", "김정은", "이하늘", "민경환", "이혜림", "한가희", "강희원", "김동현", "김나영", "김은호", "김은채", "김서영" };
S.Table["이수빈"] = vector <string>{ "이성우", "한가희", "임규민", "윤다영", "오지영", "양성민", "강미주", "예링", "이창모", "이하늘", "김정은", "김동현", "김민기", "이혜림", "강희원", "고병찬", "민경환", "김은호", "김나영", "김서영", "김은채" };
S.Table["김서영"] = vector <string>{ "김민기", "이하늘", "김나영", "강미주", "김은호", "이성우", "이혜림", "김은채", "고병찬", "김정은", "민경환", "이수빈", "강희원", "윤다영", "예링", "오지영", "한가희", "양성민", "김동현", "이창모", "임규민" };
S.Table["김은채"] = vector <string>{ "김은호", "이하늘", "김나영", "김동현", "이혜림", "김정은", "김서영", "강미주", "강희원", "임규민", "김민기", "민경환", "이수빈", "이창모", "양성민", "이성우", "윤다영", "오지영", "예링", "고병찬", "한가희" };
S.Table["이하늘"] = vector <string>{ "이수빈", "김민기", "김은채", "민경환", "김은호", "임규민", "윤다영", "이창모", "김서영", "오지영", "양성민", "이성우", "김나영", "김정은", "강미주", "예링", "한가희", "이혜림", "김동현", "고병찬", "강희원" };
}