/
graph.cc
690 lines (663 loc) · 33.8 KB
/
graph.cc
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <list>
#include <queue>
#include <stdlib.h>
#include <string>
using namespace std;
#define INF 0x3f3f3f3f
bool bfs(map<string, set<vector<string>>> university, string from, string to){
if(from==to){
return true;
}
set<string> visited;
list<string> queue;
visited.insert(from);
queue.push_back(from);
list<string>::iterator i;
while(!queue.empty()){
string current = queue.front();
queue.pop_front();
set<vector<string>>::iterator it = university[current].begin();
while(it!=university[current].end()){
if(((*it).size()==2)&&((*it)[1].length()>1)){
if((*it)[1]==to){
return true;
}
if((visited.find((*it)[1])==visited.end())&&(atoi((*it)[0].c_str())>=0)){
visited.insert((*it)[1]);
queue.push_back((*it)[1]);
}
}
++it;
}
}
return false;
}
pair<int, map<string, string>> dijkstra(map<string, vector<vector<string>>> university, string from, string to){
map<string, string> path;
map<string, int> dist;
dist[from] = 0;
set<pair<int, string>> q;
q.insert({0, from});
while(!q.empty()){
auto top = q.begin();
string u = top->second;
q.erase(top);
for(int i=1; i<university[u].size(); ++i){
int w = atoi(university[u][i][0].c_str());
if(w>=0){
string v = university[u][i][1];
int dv = INF;
if(dist.find(v)!=dist.end()){
dv = dist[v];
}
if(dv > (dist[u]+w)){
if(q.find({dv, v})!=q.end()){
q.erase(q.find({dv, v}));
}
path[v] = u;
dist[v] = dist[u]+w;
q.insert({dist[v], v});
}
}
}
}
return pair<int, map<string, string>>(dist[to], path);
}
string getArrow(string from, string to){
if(from == to){
return "/\\";
}
if(from == "T"){
if(to == "B"){
return "\\/";
}
else if(to == "L"){
return "<-";
}
else if(to == "R"){
return "->";
}
}
else if(from == "B"){
if(to == "T"){
return "\\/";
}
else if(to == "L"){
return "<-";
}
else if(to == "R"){
return "->";
}
}
else if(from == "L"){
if(to == "T"){
return "->";
}
else if(to == "B"){
return "<-";
}
else if(to == "R"){
return "\\/";
}
}
else if(from == "R"){
if(to == "T"){
return "<-";
}
else if(to == "B"){
return "->";
}
else if(to == "L"){
return "\\/";
}
}
return "?";
}
int main(){
//Pesos negatius indiquen pas tallat
map<string, vector<vector<string>>> university = {
//Edifici A6
{"A6-S1-0", {{"T"}, {"5", "A6-S1-9", "T"}}},
{"A6-S1-1", {{"T"}, {"5", "A6-S1-2", "L"}}},
{"A6-S1-2", {{"T"},{"5", "A6-S1-3", "L"}}},
{"A6-S1-3", {{"T"},{"5", "A6-S1-4", "L"}}},
{"A6-S1-4", {{"T"},{"5", "A6-S1-9", "L"}}},
{"A6-S1-8", {{"T"},{"5", "A6-S1-7", "R"}}},
{"A6-S1-7", {{"T"},{"5", "A6-S1-6", "R"}}},
{"A6-S1-6", {{"T"},{"5", "A6-S1-5", "R"}}},
{"A6-S1-5", {{"T"},{"5", "A6-S1-9", "R"}}},
{"A6-S1-9", {{"L", "R"},{"6", "A6-S1-10", "T"}}},
{"A6-S1-10", {{"L", "R"},{"3", "A6-S1-11", "T"}}},
{"A6-S1-11", {{"L", "R"}, {"4", "A6-S1-12", "T"}}},
{"A6-S1-12", {{"T"}, {"1", "A6-S1-13", "T"}, {"1", "A6-S1-14", "T"}, {"2", "A6-S1-15", "L"}}},
{"A6-S1-15", {{"L"}, {"10", "A5-0-10", "T"}}},
{"A6-S1-13", {{"T"}, {"1", "A6-S1-12", "B"}}},
{"A6-S1-14", {{"T"}, {"1", "A6-S1-12", "B"}}},
{"A6-0-0", {{"T"}, {"25", "A5-0-0", "L"}, {"3", "A6-0-1", "T"}, {"12", "A6-0-2", "L"}, {"12", "A6-0-3", "R"}, {"12", "V-0-0", "R"}}},
{"A6-0-1", {{"T"}, {"3", "A6-0-0", "B"}, {"11", "A6-0-2", "L"}, {"11", "A6-0-3", "R"}, {"2", "A6-0-4", "T"}}},
{"A6-0-2", {{"T"}, {"3", "A5-0-3", "L"}, {"12", "A6-0-0", "B"}, {"11", "A6-0-1", "R"}, {"2", "A6-0-7", "T"}}},
{"A6-0-3", {{"T"}, {"12", "A6-0-0", "B"}, {"11", "A6-0-1", "R"}, {"2", "A6-0-8", "T"}}},
{"A6-0-4", {{"T"}, {"2", "A6-0-1", "B"}, {"2", "A6-0-5", "L"}, {"2", "A6-0-6", "R"}, {"-9", "A6-E-0", "T"}}},
{"A6-0-5", {{"T"}, {"2", "A6-0-4", "R"}, {"8", "A6-0-7", "L"}}},
{"A6-0-6", {{"T"}, {"2", "A6-0-4", "L"}, {"8", "A6-0-8", "R"}}},
{"A6-0-7", {{"R"}, {"2", "A6-0-2", "B"}, {"8", "A6-0-5", "R"}, {"2", "A6-0-9", "T"}}},
{"A6-0-8", {{"L"}, {"2", "A6-0-3", "B"}, {"8", "A6-0-6", "L"}, {"2", "A6-0-10", "T"}}},
{"A6-0-9", {{"L"}, {"2", "A6-0-7", "T"}, {"9", "A6-E-1", "L"}}},
{"A6-0-10", {{"R"}, {"2", "A6-0-8", "T"}, {"9", "A6-E-2", "R"}}},
{"A6-E-0", {{"T"}, {"9", "A6-0-4", "T"}, {"11", "A6-E-1", "L"}, {"11", "A6-E-2", "R"}}},
{"A6-E-1", {{"L"}, {"10", "A6-1-11", "T"}, {"-11", "A6-E-0", "R"}, {"9", "A6-0-9", "R"}}},
{"A6-E-2", {{"R"}, {"10", "A6-1-9", "T"}, {"-11", "A6-E-0", "L"}, {"9", "A6-0-10", "L"}}},
{"A6-1-0", {{"T"}, {"6", "A6-1-1", "L"}, {"6", "A6-1-2", "R"}, {"4", "A6-1-3", "L"}, {"4", "A6-1-4", "R"}, {"1", "A6-1-5", "B"}}},
{"A6-1-1", {{"T"}, {"6", "A6-1-0", "R"}, {"2", "A6-1-3", "R"}, {"1", "A6-1-6", "B"}, {"2", "A6-1-8", "L"}}},
{"A6-1-2", {{"T"}, {"6", "A6-1-0", "L"}, {"2", "A6-1-4", "L"}, {"1", "A6-1-7", "B"}, {"4", "A6-1-9", "R"}}},
{"A6-1-3", {{"T"}, {"4", "A6-1-0", "B"}, {"2", "A6-1-1", "B"}}},
{"A6-1-4", {{"T"}, {"4", "A6-1-0", "B"}, {"2", "A6-1-2", "B"}}},
{"A6-1-5", {{"B"}, {"1", "A6-1-0", "T"}}},
{"A6-1-6", {{"B"}, {"1", "A6-1-1", "T"}}},
{"A6-1-7", {{"B"}, {"1", "A6-1-2", "T"}}},
{"A6-1-8", {{"T"}, {"2", "A6-1-1", "R"}, {"2", "A6-1-10", "B"}, {"2", "A6-1-11", "L"}}},
{"A6-1-9", {{"R"}, {"10", "A6-E-2", "T"}, {"4", "A6-1-2", "L"}, {"1", "A6-1-12", "B"}}},
{"A6-1-10", {{"R"}, {"2", "A6-1-8", "T"}, {"3", "A6-1-14", "L"}}},
{"A6-1-11", {{"L"}, {"10", "A6-E-1", "T"}, {"2", "A6-1-8", "R"}, {"1", "A6-1-13", "B"}}},
{"A6-1-12", {{"R"}, {"1", "A6-1-9", "L"}, {"1", "A6-1-16", "B"}, {"10", "A6-2-9", "L"}}},
{"A6-1-13", {{"L"}, {"1", "A6-1-11", "B"}, {"1", "A6-1-14", "B"}, {"10", "A6-2-11", "R"}}},
{"A6-1-14", {{"T"}, {"3", "A5-1-17", "L"}, {"3", "A6-1-10", "R"}, {"1", "A6-1-13", "T"}, {"1", "A6-1-15", "B"}}},
{"A6-1-15", {{"B"}, {"1", "A6-1-14", "T"}}},
{"A6-1-16", {{"B"}, {"1", "A6-1-12", "T"}}},
{"A6-2-0", {{"T"}, {"6", "A6-2-1", "L"}, {"6", "A6-2-2", "R"}, {"4", "A6-2-3", "L"}, {"4", "A6-2-4", "R"}, {"1", "A6-2-5", "B"}}},
{"A6-2-1", {{"T"}, {"6", "A6-2-0", "R"}, {"2", "A6-2-3", "R"}, {"1", "A6-2-6", "B"}, {"2", "A6-2-8", "L"}}},
{"A6-2-2", {{"T"}, {"6", "A6-2-0", "L"}, {"2", "A6-2-4", "L"}, {"1", "A6-2-7", "B"}, {"4", "A6-2-9", "R"}}},
{"A6-2-3", {{"T"}, {"4", "A6-2-0", "R"}, {"2", "A6-2-1", "L"}}},
{"A6-2-4", {{"T"}, {"4", "A6-2-0", "L"}, {"2", "A6-2-2", "R"}}},
{"A6-2-5", {{"B"}, {"1", "A6-2-0", "T"}}},
{"A6-2-6", {{"B"}, {"1", "A6-2-1", "T"}}},
{"A6-2-7", {{"B"}, {"1", "A6-2-2", "T"}}},
{"A6-2-8", {{"T"}, {"2", "A6-2-1", "R"}, {"2", "A6-2-10", "B"}, {"2", "A6-2-11", "L"}}},
{"A6-2-9", {{"R"}, {"10", "A6-1-12", "T"}, {"4", "A6-2-2", "L"}, {"1", "A6-2-12", "B"}}},
{"A6-2-10", {{"R"}, {"2", "A6-2-8", "T"}, {"3", "A6-2-14", "L"}}},
{"A6-2-11", {{"L"}, {"10", "A6-1-13", "T"}, {"2", "A6-2-8", "R"}, {"1", "A6-2-13", "B"}}},
{"A6-2-12", {{"R"}, {"1", "A6-2-16", "B"}, {"1", "A6-2-9", "L"}}},
{"A6-2-13", {{"L"}, {"1", "A6-2-14", "B"}, {"10", "A6-2-11", "R"}}},
{"A6-2-14", {{"T"}, {"3", "A5-2-17", "L"}, {"3", "A6-2-10", "R"}, {"1", "A6-2-13", "T"}, {"1", "A6-2-15", "B"}}},
{"A6-2-15", {{"B"}, {"1", "A6-2-14", "T"}}},
{"A6-2-16", {{"B"}, {"1", "A6-2-12", "T"}}},
//Edifici A5
{"A5-0-0", {{"T"}, {"25", "A4-0-0", "L"}, {"3", "A5-0-1", "T"}, {"12", "A5-0-2", "L"}, {"12", "A5-0-3", "R"}, {"25", "A6-0-0", "L"}}},
{"A5-0-1", {{"T"}, {"3", "A5-0-0", "B"}, {"11", "A5-0-2", "L"}, {"11", "A5-0-3", "R"}, {"2", "A5-0-4", "T"}}},
{"A5-0-2", {{"T"}, {"3", "A4-0-3", "L"}, {"12", "A5-0-0", "B"}, {"11", "A5-0-1", "R"}, {"2", "A5-0-7", "T"}}},
{"A5-0-3", {{"T"}, {"12", "A5-0-0", "B"}, {"11", "A5-0-1", "L"}, {"2", "A5-0-8", "T"}, {"3", "A6-0-2", "R"}}},
{"A5-0-4", {{"L", "R"}, {"2", "A5-0-1", "B"}, {"2", "A5-0-5", "L"}, {"2", "A5-0-6", "R"}, {"4", "A5-0-11", "T"}}},
{"A5-0-5", {{"T"}, {"2", "A5-0-4", "R"}, {"8", "A5-0-7", "L"}}},
{"A5-0-6", {{"T"}, {"2", "A5-0-4", "L"}, {"8", "A5-0-8", "R"}}},
{"A5-0-7", {{"R"}, {"2", "A5-0-2", "B"}, {"8", "A5-0-5", "R"}, {"2", "A5-0-9", "T"}}},
{"A5-0-8", {{"L"}, {"2", "A5-0-3", "B"}, {"8", "A5-0-6", "L"}, {"2", "A5-0-10", "T"}}},
{"A5-0-9", {{"L"}, {"2", "A5-0-7", "B"}, {"9", "A5-E-1", "T"}}},
{"A5-0-10", {{"R"}, {"2", "A5-0-8", "B"}, {"9", "A5-E-2", "T"}, {"-10", "A6-S1-15", "L"}}},
{"A5-0-11", {{"T"}, {"4", "A5-0-4", "B"}}},
{"A5-E-1", {{"L"}, {"10", "A5-1-11", "T"}, {"9", "A5-0-9", "R"}}},
{"A5-E-2", {{"R"}, {"10", "A5-1-9", "T"}, {"9", "A5-0-10", "L"}}},
{"A5-1-0", {{"T"}, {"6", "A5-1-1", "L"}, {"6", "A5-1-2", "R"}, {"4", "A5-1-3", "L"}, {"4", "A5-1-4", "R"}, {"1", "A5-1-5", "B"}}},
{"A5-1-1", {{"T"}, {"6", "A5-1-0", "R"}, {"2", "A5-1-3", "R"}, {"1", "A5-1-6", "B"}, {"2", "A5-1-8", "L"}}},
{"A5-1-2", {{"T"}, {"6", "A5-1-0", "L"}, {"2", "A5-1-4", "L"}, {"1", "A5-1-7", "B"}, {"4", "A5-1-9", "R"}}},
{"A5-1-3", {{"T"}, {"4", "A5-1-0", "R"}, {"2", "A5-1-1", "L"}}},
{"A5-1-4", {{"T"}, {"4", "A5-1-0", "L"}, {"2", "A5-1-2", "R"}}},
{"A5-1-5", {{"B"}, {"1", "A5-1-0", "T"}}},
{"A5-1-6", {{"B"}, {"1", "A5-1-1", "T"}}},
{"A5-1-7", {{"B"}, {"1", "A5-1-2", "T"}}},
{"A5-1-8", {{"T"}, {"2", "A5-1-1", "R"}, {"2", "A5-1-10", "B"}, {"2", "A5-1-11", "L"}}},
{"A5-1-9", {{"L"}, {"10", "A5-E-2", "T"}, {"4", "A5-1-2", "L"}, {"1", "A5-1-12", "B"}}},
{"A5-1-10", {{"R"}, {"2", "A5-1-8", "T"}, {"3", "A5-1-14", "L"}}},
{"A5-1-11", {{"L"}, {"10", "A5-E-1", "T"}, {"2", "A5-1-8", "R"}, {"1", "A5-1-13", "B"}}},
{"A5-1-12", {{"R"}, {"1", "A5-1-9", "L"}, {"1", "A5-1-17", "B"}, {"10", "A5-2-9", "T"}}},
{"A5-1-13", {{"L"}, {"1", "A5-1-11", "R"}, {"1", "A5-1-14", "B"}, {"10", "A5-2-11", "T"}}},
{"A5-1-14", {{"T"}, {"3", "A4-1-17", "L"}, {"3", "A5-1-10", "R"}, {"1", "A5-1-13", "T"}, {"1", "A5-1-15", "B"}}},
{"A5-1-15", {{"B"}, {"1", "A5-1-14", "T"}}},
{"A5-1-16", {{"B"}, {"1", "A5-1-17", "T"}}},
{"A5-1-17", {{"B"}, {"1", "A5-1-12", "T"}, {"1", "A5-1-16", "B"}, {"3", "A6-1-14", "R"}}},
{"A5-2-0", {{"T"}, {"6", "A5-2-1", "L"}, {"6", "A5-2-2", "R"}, {"4", "A5-2-3", "L"}, {"4", "A5-2-4", "R"}, {"1", "A5-2-5", "B"}}},
{"A5-2-1", {{"T"}, {"6", "A5-2-0", "R"}, {"2", "A5-2-3", "R"}, {"1", "A5-2-6", "B"}, {"2", "A5-2-8", "L"}}},
{"A5-2-2", {{"T"}, {"6", "A5-2-0", "L"}, {"2", "A5-2-4", "L"}, {"1", "A5-2-7", "B"}, {"4", "A5-2-9", "R"}}},
{"A5-2-3", {{"T"}, {"4", "A5-2-0", "R"}, {"2", "A5-2-1", "L"}}},
{"A5-2-4", {{"T"}, {"4", "A5-2-0", "L"}, {"2", "A5-2-2", "R"}}},
{"A5-2-5", {{"B"}, {"1", "A5-2-0", "T"}}},
{"A5-2-6", {{"B"}, {"1", "A5-2-1", "T"}}},
{"A5-2-7", {{"B"}, {"1", "A5-2-2", "T"}}},
{"A5-2-8", {{"T"}, {"2", "A5-2-1", "L"}, {"2", "A5-2-10", "B"}, {"2", "A5-2-11", "L"}}},
{"A5-2-9", {{"L"}, {"10", "A5-1-12", "T"}, {"4", "A5-2-2", "L"}, {"1", "A5-2-12", "B"}}},
{"A5-2-10", {{"R"}, {"2", "A5-2-8", "T"}, {"3", "A5-2-14", "L"}}},
{"A5-2-11", {{"L"}, {"10", "A5-1-13", "T"}, {"2", "A5-2-8", "R"}, {"1", "A5-2-13", "B"}}},
{"A5-2-12", {{"R"}, {"1", "A5-2-17", "B"}, {"1", "A5-2-9", "L"}}},
{"A5-2-13", {{"L"}, {"1", "A5-2-14", "B"}, {"10", "A5-2-11", "L"}}},
{"A5-2-14", {{"T"}, {"3", "A4-2-17", "L"}, {"3", "A5-2-10", "R"}, {"1", "A5-2-13", "T"}, {"1", "A5-2-15", "B"}}},
{"A5-2-15", {{"B"}, {"1", "A5-2-14", "T"}}},
{"A5-2-16", {{"B"}, {"1", "A5-2-17", "T"}}},
{"A5-2-17", {{"B"}, {"B", "A5-2-12", "T"}, {"1", "A5-2-16", "B"}, {"3", "A6-2-14", "R"}}},
//Efifici A4
{"A4-0-0", {{"T"}, {"25", "A3-0-0", "L"}, {"3", "A4-0-1", "T"}, {"12", "A4-0-2", "L"}, {"12", "A4-0-3", "R"}, {"25", "A5-0-0", "R"}}},
{"A4-0-1", {{"T"}, {"3", "A4-0-0", "B"}, {"11", "A4-0-2", "L"}, {"11", "A4-0-3", "R"}}},
{"A4-0-2", {{"T"}, {"12", "A4-0-0", "B"}, {"11", "A4-0-1", "R"}, {"-2", "A4-0-7", "T"}, {"1", "A4-0-14", "L"}}},
{"A4-0-3", {{"T"}, {"12", "A4-0-0", "B"}, {"11", "A4-0-1", "L"}, {"2", "A4-0-8", "T"}, {"3", "A5-0-2", "R"}}},
{"A4-0-4", {{"T"}, {"2", "A4-0-5", "L"}, {"2", "A4-0-6", "R"}}},
{"A4-0-5", {{"T"}, {"2", "A4-0-4", "R"}, {"-8", "A4-0-7", "L"}}},
{"A4-0-6", {{"T"}, {"2", "A4-0-4", "L"}, {"-8", "A4-0-8", "R"}}},
{"A4-0-7", {{"R"}, {"-2", "A4-0-2", "B"}, {"-8", "A4-0-5", "R"}, {"2", "A4-0-9", "T"}}},
{"A4-0-8", {{"L"}, {"2", "A4-0-3", "B"}, {"-8", "A4-0-6", "L"}, {"2", "A4-0-10", "T"}}},
{"A4-0-9", {{"R"}, {"2", "A4-0-7", "B"}, {"1", "A4-0-11", "R"}, {"1", "A4-0-12", "R"}, {"1", "A4-0-13", "L"}}},
{"A4-0-10", {{"R"}, {"2", "A4-0-8", "B"}, {"9", "A4-E-2", "T"}}},
{"A4-0-11", {{"R"}, {"1", "A4-0-9", "L"}}},
{"A4-0-12", {{"R"}, {"1", "A4-0-9", "L"}}},
{"A4-0-13", {{"T"}, {"1", "A4-0-9", "R"}, {"9", "A4-E-1", "B"}}},
{"A4-0-14", {{"L", "T"}, {"4", "A3-0-14", "L"}, {"1", "A4-0-2", "R"}, {"7", "D-0-2", "T"}}},
{"A4-E-1", {{"T"}, {"10", "A4-0-13", "R"}, {"9", "A4-1-13", "L"}}},
{"A4-E-2", {{"R"}, {"10", "A4-0-10", "L"}, {"9", "A4-1-9", "T"}}},
{"A4-1-0", {{"T"}, {"6", "A4-1-1", "L"}, {"6", "A4-1-2", "R"}, {"4", "A4-1-3", "L"}, {"4", "A4-1-4", "R"}}},
{"A4-1-1", {{"T"}, {"6", "A4-1-0", "R"}, {"2", "A4-1-3", "R"}, {"2", "A4-1-6", "B"}, {"1", "A4-1-8", "L"}}},
{"A4-1-2", {{"T"}, {"6", "A4-1-0", "L"}, {"2", "A4-1-4", "L"}, {"2", "A4-1-7", "B"}, {"4", "A4-1-9", "R"}}},
{"A4-1-3", {{"T"}, {"4", "A4-1-0", "R"}, {"2", "A4-1-1", "L"}}},
{"A4-1-4", {{"T"}, {"4", "A4-1-0", "L"}, {"2", "A4-1-2", "R"}}},
{"A4-1-6", {{"B"}, {"2", "A4-1-1", "T"}}},
{"A4-1-7", {{"B"}, {"2", "A4-1-2", "T"}}},
{"A4-1-8", {{"T"}, {"2", "A4-1-1", "R"}, {"2", "A4-1-10", "B"}, {"2", "A4-1-11", "L"}}},
{"A4-1-9", {{"L"}, {"9", "A4-E-2", "T"}, {"4", "A4-1-2", "L"}, {"1", "A4-1-12", "B"}}},
{"A4-1-10", {{"R"}, {"2", "A4-1-8", "T"}, {"3", "A4-1-14", "L"}}},
{"A4-1-11", {{"L"}, {"2", "A4-1-8", "R"}, {"1", "A4-1-13", "B"}, {"10", "A4-2-13", "T"}}},
{"A4-1-12", {{"R"}, {"1", "A4-1-9", "L"}, {"1", "A4-1-17", "B"}, {"10", "A4-2-9", "T"}}},
{"A4-1-13", {{"L"}, {"9", "A4-E-1", "T"}, {"1", "A4-1-11", "R"}, {"1", "A4-1-14", "B"}}},
{"A4-1-14", {{"T"}, {"3", "A3-1-14", "L"}, {"3", "A4-1-10", "R"}, {"1", "A4-1-13", "T"}, {"1", "A4-1-15", "B"}}},
{"A4-1-15", {{"B"}, {"1", "A4-1-14", "T"}}},
{"A4-1-16", {{"B"}, {"1", "A4-1-17", "T"}}},
{"A4-1-17", {{"B"}, {"1", "A4-1-12", "T"}, {"1", "A4-1-16", "B"}, {"3", "A5-1-14", "R"}}},
{"A4-2-0", {{"T"}, {"6", "A4-2-1", "L"}, {"6", "A4-2-2", "R"}, {"2", "A4-2-5", "B"}, {"2", "A4-2-18", "T"}}},
{"A4-2-1", {{"T"}, {"6", "A4-2-0", "R"}, {"1", "A4-2-3", "T"}, {"1", "A4-2-6", "B"}, {"1", "A4-2-8", "L"}}},
{"A4-2-2", {{"T"}, {"6", "A4-2-0", "L"}, {"1", "A4-2-4", "T"}, {"1", "A4-2-7", "B"}, {"10", "A4-2-9", "R"}}},
{"A4-2-3", {{"T"}, {"1", "A4-2-1", "B"}}},
{"A4-2-4", {{"T"}, {"1", "A4-2-2", "B"}}},
{"A4-2-5", {{"B"}, {"2", "A4-2-0", "T"}}},
{"A4-2-6", {{"B"}, {"1", "A4-2-1", "T"}}},
{"A4-2-7", {{"B"}, {"1", "A4-2-2", "T"}}},
{"A4-2-8", {{"T"}, {"2", "A4-2-1", "R"}, {"2", "A4-2-10", "B"}, {"2", "A4-2-11", "L"}}},
{"A4-2-9", {{"L"}, {"10", "A4-1-12", "T"}, {"10", "A4-2-2", "L"}, {"1", "A4-2-12", "B"}}},
{"A4-2-10", {{"R"}, {"2", "A4-2-8", "T"}, {"3", "A4-2-14", "L"}}},
{"A4-2-11", {{"L"}, {"2", "A4-2-8", "R"}, {"1", "A4-2-13", "B"}}},
{"A4-2-12", {{"R"}, {"1", "A4-2-9", "L"}, {"1", "A4-2-17", "B"}}},
{"A4-2-13", {{"L"}, {"9", "A4-1-11", "T"}, {"1", "A4-2-11", "R"}, {"1", "A4-2-14", "B"}}},
{"A4-2-14", {{"T"}, {"3", "A3-2-14", "L"}, {"3", "A4-2-10", "R"}, {"1", "A4-2-13", "T"}, {"1", "A4-2-15", "B"}}},
{"A4-2-15", {{"B"}, {"1", "A4-2-14", "T"}}},
{"A4-2-16", {{"B"}, {"1", "A4-2-17", "T"}}},
{"A4-2-17", {{"B"}, {"1", "A4-2-12", "T"}, {"1", "A4-2-16", "B"}, {"3", "A5-2-14", "R"}}},
{"A4-2-18", {{"T"}, {"2", "A4-2-0", "T"}}},
//Edifici A3
{"A3-0-0", {{"T"}, {"3", "A3-0-1", "T"}, {"12", "A3-0-2", "L"}, {"12", "A3-0-3", "R"}, {"25", "A4-0-0", "R"}}},
{"A3-0-1", {{"T"}, {"3", "A3-0-0", "B"}, {"11", "A3-0-2", "L"}, {"11", "A3-0-3", "R"}}},
{"A3-0-2", {{"T"}, {"12", "A3-0-0", "B"}, {"11", "A3-0-1", "R"}, {"2", "A3-0-7", "T"}}},
{"A3-0-3", {{"T"}, {"12", "A3-0-0", "B"}, {"11", "A3-0-1", "L"}, {"-2", "A4-0-8", "T"}, {"1", "A3-0-14", "R"}}},
{"A3-0-4", {{"T"}, {"2", "A3-0-5", "L"}, {"2", "A3-0-6", "R"}}},
{"A3-0-5", {{"T"}, {"2", "A3-0-4", "R"}, {"-8", "A3-0-7", "L"}}},
{"A3-0-6", {{"T"}, {"2", "A3-0-4", "L"}, {"-8", "A3-0-8", "R"}}},
{"A3-0-7", {{"L"}, {"2", "A3-0-2", "B"}, {"-8", "A3-0-5", "R"}, {"2", "A3-0-10", "T"}}},
{"A3-0-8", {{"R"}, {"-2", "A3-0-3", "B"}, {"-8", "A3-0-6", "L"}, {"2", "A3-0-9", "T"}}},
{"A3-0-9", {{"L"}, {"2", "A3-0-8", "B"}, {"1", "A3-0-11", "L"}, {"1", "A3-0-12", "L"}, {"1", "A3-0-13", "T"}}},
{"A3-0-10", {{"L"}, {"2", "A3-0-7", "B"}, {"9", "A3-E-1", "T"}}},
{"A3-0-11", {{"L"}, {"1", "A3-0-9", "R"}}},
{"A3-0-12", {{"L"}, {"1", "A3-0-9", "R"}}},
{"A3-0-13", {{"T"}, {"1", "A3-0-9", "B"}, {"9", "A3-E-2", "L"}}},
{"A3-0-14", {{"R", "B"}, {"1", "A3-0-3", "L"}, {"4", "A4-0-14", "R"}, {"7", "D-0-1", "T"}}},
{"A3-E-1", {{"L"}, {"10", "A4-0-10", "R"}, {"9", "A3-1-9", "T"}}},
{"A3-E-2", {{"T"}, {"10", "A3-0-13", "L"}, {"9", "A3-1-13", "R"}}},
{"A3-1-0", {{"T"}, {"6", "A3-1-1", "L"}, {"6", "A3-1-2", "R"}, {"4", "A3-1-3", "L"}, {"4", "A3-1-4", "R"}}},
{"A3-1-1", {{"T"}, {"6", "A3-1-0", "R"}, {"2", "A3-1-3", "R"}, {"2", "A3-1-6", "B"}, {"1", "A3-1-9", "L"}}},
{"A3-1-2", {{"T"}, {"6", "A4-1-0", "L"}, {"2", "A4-1-4", "L"}, {"2", "A4-1-7", "B"}, {"4", "A3-1-8", "R"}}},
{"A3-1-3", {{"T"}, {"4", "A3-1-0", "R"}, {"2", "A3-1-1", "L"}}},
{"A3-1-4", {{"T"}, {"4", "A3-1-0", "L"}, {"2", "A3-1-2", "R"}}},
{"A3-1-6", {{"B"}, {"2", "A3-1-1", "T"}}},
{"A3-1-7", {{"B"}, {"2", "A3-1-2", "T"}}},
{"A3-1-8", {{"T"}, {"2", "A3-1-2", "L"}, {"2", "A3-1-10", "B"}, {"2", "A3-1-11", "R"}}},
{"A3-1-9", {{"R"}, {"9", "A3-E-1", "T"}, {"4", "A3-1-1", "R"}, {"1", "A3-1-12", "B"}}},
{"A3-1-10", {{"L"}, {"2", "A3-1-8", "T"}, {"3", "A3-1-14", "R"}}},
{"A3-1-11", {{"R"}, {"2", "A3-1-8", "L"}, {"1", "A3-1-13", "B"}, {"10", "A3-2-13", "T"}}},
{"A3-1-12", {{"L"}, {"1", "A3-1-9", "R"}, {"1", "A3-1-17", "B"}, {"10", "A3-2-9", "T"}}},
{"A3-1-13", {{"R"}, {"9", "A3-E-2", "T"}, {"1", "A3-1-11", "L"}, {"1", "A3-1-14", "B"}}},
{"A3-1-14", {{"T"}, {"3", "A3-1-10", "L"}, {"1", "A3-1-13", "T"}, {"1", "A3-1-15", "B"}, {"3", "A4-1-14", "R"}}},
{"A3-1-15", {{"B"}, {"1", "A3-1-14", "T"}}},
{"A3-1-16", {{"B"}, {"1", "A3-1-17", "T"}}},
{"A3-1-17", {{"B"}, {"1", "A3-1-12", "T"}, {"1", "A3-1-16", "B"}}},
{"A3-2-0", {{"T"}, {"6", "A3-2-1", "L"}, {"6", "A3-2-2", "R"}, {"2", "A3-2-5", "B"}, {"2", "A3-2-18", "T"}}},
{"A3-2-1", {{"T"}, {"6", "A3-2-0", "R"}, {"1", "A3-2-3", "T"}, {"1", "A3-2-6", "B"}, {"1", "A3-2-9", "L"}}},
{"A3-2-2", {{"T"}, {"6", "A3-2-0", "L"}, {"1", "A3-2-4", "T"}, {"1", "A3-2-7", "B"}, {"10", "A3-2-8", "R"}}},
{"A3-2-3", {{"T"}, {"1", "A3-2-1", "B"}}},
{"A3-2-4", {{"T"}, {"1", "A3-2-2", "B"}}},
{"A3-2-5", {{"T"}, {"2", "A3-2-0", "T"}}},
{"A3-2-6", {{"T"}, {"1", "A3-2-1", "T"}}},
{"A3-2-7", {{"T"}, {"1", "A3-2-2", "T"}}},
{"A3-2-8", {{"T"}, {"2", "A3-2-2", "L"}, {"2", "A3-2-10", "B"}, {"2", "A3-2-11", "R"}}},
{"A3-2-9", {{"R"}, {"10", "A3-1-12", "T"}, {"10", "A3-2-1", "R"}, {"1", "A3-2-12", "B"}}},
{"A3-2-10", {{"L"}, {"2", "A3-2-8", "T"}, {"3", "A3-2-14", "R"}}},
{"A3-2-11", {{"R"}, {"2", "A3-2-8", "L"}, {"1", "A3-2-13", "B"}}},
{"A3-2-12", {{"L"}, {"1", "A3-2-9", "R"}, {"1", "A3-2-17", "B"}}},
{"A3-2-13", {{"R"}, {"9", "A3-1-11", "T"}, {"1", "A3-2-11", "L"}, {"1", "A3-2-14", "B"}}},
{"A3-2-14", {{"T"}, {"3", "A3-2-10", "L"}, {"1", "A3-2-13", "T"}, {"1", "A3-2-15", "B"}, {"3", "A4-2-14", "R"}}},
{"A3-2-15", {{"B"}, {"1", "A3-2-14", "T"}}},
{"A3-2-16", {{"B"}, {"1", "A3-2-17", "T"}}},
{"A3-2-17", {{"B"}, {"1", "A3-2-12", "T"}, {"1", "A3-2-16", "B"}}},
{"A3-2-18", {{"T"}, {"2", "A3-2-0", "T"}}},
//Vèrtex
{"V-0-0", {{"R"}, {"12", "A6-0-0", "L"}, {"12", "V-0-1", "T"}}},
{"V-0-1", {{"L"}, {"4", "V-0-0", "B"}, {"4", "V-0-2", "T"}}},
{"V-0-2", {{"L"}, {"4", "V-0-1", "B"}, {"4", "V-0-3", "T"}}},
{"V-0-3", {{"L"}, {"4", "V-0-2", "B"}, {"4", "V-0-4", "T"}}},
{"V-0-4", {{"L"}, {"4", "V-0-3", "B"}, {"4", "V-0-5", "T"}}},
{"V-0-5", {{"L"}, {"4", "V-0-4", "B"}, {"4", "V-0-6", "T"}}},
{"V-0-6", {{"L"}, {"4", "V-0-5", "B"}, {"4", "V-0-7", "T"}}},
{"V-0-7", {{"L"}, {"4", "V-0-6", "B"}, {"4", "V-0-8", "T"}}},
{"V-0-8", {{"L"}, {"4", "V-0-7", "B"}, {"4", "V-0-9", "T"}}},
{"V-0-9", {{"L"}, {"4", "V-0-8", "B"}, {"4", "V-0-10", "T"}}},
{"V-0-10", {{"T"}, {"4", "V-0-9", "B"}, {"4", "V-0-11", "R"}}},
{"V-0-11", {{"B"}, {"4", "V-0-10", "L"}, {"4", "V-0-12", "R"}}},
{"V-0-12", {{"R"}, {"4", "V-0-11", "L"}, {"4", "V-0-13", "B"}}},
{"V-0-13", {{"R"}, {"4", "V-0-12", "T"}, {"4", "V-0-14", "B"}}},
{"V-0-14", {{"B"}, {"4", "V-0-13", "T"}, {"4", "V-0-15", "R"}}},
{"V-0-15", {{"R"}, {"4", "V-0-14", "L"}, {"4", "V-0-16", "T"}}},
{"V-0-16", {{"R"}, {"4", "V-0-15", "B"}}},
//Poliesportiu
{"D-0-0", {{"L", "R"}, {"3", "D-0-1", "T"}, {"3", "D-0-2", "T"}, {"100", "D-0-3", "B"}}},
{"D-0-1", {{"T", "L"}, {"7", "A3-0-14", "B"}, {"3", "D-0-0", "R"}, {"3", "D-0-2", "R"}}},
{"D-0-2", {{"T", "R"}, {"7", "A4-0-14", "B"}, {"3", "D-0-0", "L"}, {"3", "D-0-1", "L"}}},
{"D-0-3", {{"L", "R"}, {"100", "D-0-0", "T"}}}
};
/*map<string, set<vector<string>>>::iterator it = university.begin();
while(it!=university.end()){
cout << it->first << endl;
++it;
}*/
map<string, string> placesToTranslate = {
{"CA", "Cafeteria"},
{"ID", "Info-Desk"},
{"BC", "Baggage Check-in"},
{"HL", "Hardware Lab"},
{"T1", "Talk Room 1"},
{"T2", "Talk Room 2"},
{"TR", "Talk Rooms"},
{"ME", "Meals"},
{"SH", "Showers"},
{"AU", "Auditorium"},
{"MB", "Men Bathroom"},
{"WB", "Women Bathroom"},
{"SR", "Sleeping Rooms"},
{"HR", "Hacker Rooms"},
{"CI", "Check-in"}
};
map<string, vector<string>> placesTo = {
{"CA", {"A6-1-10"}},
{"ID", {"A5-0-11"}},
{"BC", {"A5-0-11"}},
{"HL", {"A5-0-11"}},
{"T1", {"A5-0-5"}},
{"T2", {"A5-0-6"}},
{"TR", {"A5-0-5", "A5-0-6"}},
{"ME", {"A5-0-0"}},
{"SH", {"D-0-3"}},
{"AU", {"V-0-16"}},
{"MB", {"A6-1-15", "A6-2-15", "A5-1-15", "A5-2-15", "A4-1-15", "A4-2-15", "A3-1-16", "A3-2-16", "A6-S1-14"}},
{"WB", {"A6-1-16", "A6-2-16", "A5-1-16", "A5-2-16", "A4-1-16", "A4-2-16", "A3-1-15", "A3-2-15", "A6-S1-13"}},
{"SR", {"A3-1-3", "A3-1-4", "A3-1-6", "A3-1-7", "A3-2-3", "A3-2-4", "A3-2-6", "A3-2-7", "A3-2-18", "A4-2-3",
"A4-2-4", "A4-2-6", "A4-2-7", "A4-2-18"}},
{"HR", {"A4-1-3", "A4-1-4", "A4-1-6", "A4-1-7", "A5-1-3", "A5-1-4", "A5-1-5", "A5-1-6", "A5-1-7", "A5-2-3",
"A5-2-4", "A5-2-5", "A5-2-6", "A5-2-7", "A6-1-3", "A6-1-4", "A6-1-5", "A6-1-7", "A6-2-3", "A6-2-4", "A6-2-5",
"A6-2-6", "A6-2-7"}},
{"CI", {"A6-S1-10"}}
};
vector<vector<string>> placesSigns = {
{"A6-S1-8", "CI"},
{"A6-S1-6", "CI"},
{"A6-S1-1", "CI"},
{"A6-S1-3", "CI"},
{"A6-S1-9", "CI"},
{"A6-S1-11", "BC", "HR", "MB", "WB"},
{"A6-S1-12", "BC", "HR", "MB", "WB"},
{"A6-S1-15", "BC", "HR"},
{"A5-0-10", "BC", "HR"},
{"A5-0-10", "CA", "HR", "ID", "HL"},
{"A5-0-9", "CA", "HR", "ID", "HL"},
{"A5-0-8", "BC"},
{"A5-0-8", "ID", "HL", "AU", "SH", "ME"},
{"A5-0-7", "ID", "HL", "AU", "SH", "ME"},
{"A5-0-6", "ID", "HL", "BC", "HR"},
{"A5-0-5", "ID", "HL", "BC", "HR"},
{"A5-0-4", "ID", "HL", "BC"},
{"A5-0-1", "ID", "AU", "SH"},
{"A5-0-0", "ID", "AU", "SH"},
{"A5-0-3", "CA", "HR", "SR"},
{"A5-0-2", "CA", "HR", "SR"},
{"A5-E-1", "CA", "HR", "SR"},
{"A5-E-2", "CA", "HR", "SR"},
{"A5-1-0", "ID", "CA", "SR", "TR", "ME"},
{"A5-1-1", "ID", "CA", "SR", "TR", "ME"},
{"A5-1-2", "ID", "CA", "SR", "TR", "ME"},
{"A5-1-9", "ID", "CA", "SH", "SR", "ME"},
{"A5-1-12", "CA", "SR", "MB", "WB"},
{"A5-1-17", "CA", "MB", "WB"},
{"A5-1-14", "CA", "SR", "MB", "WB"},
{"A5-1-8", "ID", "CA", "SR", "TR", "ME"},
{"A5-1-13", "TR", "SR"},
{"A5-1-11", "ID", "SR", "SH", "TR", "ME"},
{"A5-2-0", "ID", "CA", "SR", "TR", "ME"},
{"A5-2-1", "ID", "CA", "SR", "TR", "ME"},
{"A5-2-2", "ID", "CA", "SR", "TR", "ME"},
{"A5-2-9", "ID", "CA", "SH", "SR", "ME"},
{"A5-2-12", "CA", "SR", "MB", "WB"},
{"A5-2-17", "CA", "MB", "WB"},
{"A5-2-14", "CA", "SR", "MB", "WB"},
{"A5-2-8", "ID", "CA", "SR", "TR", "ME"},
{"A5-2-13", "TR", "SR"},
{"A5-2-11", "ID", "SR", "SH", "TR", "ME"},
{"A6-0-10", "CA", "HR", "ID", "HL"},
{"A6-0-9", "CA", "HR", "ID", "HL"},
{"A6-0-8", "ID", "HL", "AU", "SH", "ME"},
{"A6-0-7", "ID", "HL", "AU", "SH", "ME"},
{"A6-0-6", "ID", "HL", "BC", "HR"},
{"A6-0-5", "ID", "HL", "BC", "HR"},
{"A6-0-1", "ID", "AU", "SH"},
{"A6-0-0", "ID", "AU", "SH"},
{"A6-0-3", "CA", "HR", "SR"},
{"A6-0-2", "CA", "HR", "SR"},
{"A6-E-1", "CA", "HR", "SR"},
{"A6-E-2", "CA", "HR", "SR"},
{"A6-1-0", "ID", "CA", "SR", "TR", "ME"},
{"A6-1-1", "ID", "CA", "SR", "TR", "ME"},
{"A6-1-2", "ID", "CA", "SR", "TR", "ME"},
{"A6-1-9", "ID", "CA", "SH", "SR", "ME"},
{"A6-1-12", "MB", "WB"},
{"A6-1-16", "MB", "WB"},
{"A6-1-14", "CA", "SR", "MB", "WB"},
{"A6-1-8", "ID", "CA", "SR", "TR", "ME"},
{"A6-1-13", "TR", "SR"},
{"A6-1-11", "ID", "SR", "SH", "TR", "ME"},
{"A6-2-0", "ID", "CA", "SR", "TR", "ME"},
{"A6-2-1", "ID", "CA", "SR", "TR", "ME"},
{"A6-2-2", "ID", "CA", "SR", "TR", "ME"},
{"A6-2-9", "ID", "CA", "SH", "SR", "ME"},
{"A6-2-12", "MB", "WB"},
{"A6-2-16", "MB", "WB"},
{"A6-2-14", "CA", "SR", "MB", "WB"},
{"A6-2-8", "ID", "CA", "SR", "TR", "ME"},
{"A6-2-13", "TR", "SR"},
{"A6-2-11", "ID", "SR", "SH", "TR", "ME"},
{"A4-0-10", "CA", "HR", "ID", "HL"},
{"A4-0-13", "ID", "HR", "MB", "WB"},
{"A4-0-9", "MB", "WB"},
{"A4-0-8", "ID", "HL", "AU", "SH", "ME"},
{"A4-0-1", "ID", "AU", "SH"},
{"A4-0-0", "ID", "AU", "SH"},
{"A4-0-3", "CA", "HR", "SR"},
{"A4-0-2", "CA", "HR", "SR"},
{"A4-0-14", "ID", "HR", "SH"},
{"A4-E-1", "ID", "HR", "MB", "WB"},
{"A4-E-2", "CA", "HR", "SR"},
{"A4-1-0", "ID", "CA", "SR", "TR", "ME"},
{"A4-1-1", "ID", "CA", "SR", "TR", "ME"},
{"A4-1-2", "ID", "CA", "SR", "TR", "ME"},
{"A4-1-9", "ID", "CA", "SH", "SR", "ME"},
{"A4-1-12", "CA", "SR", "MB", "WB"},
{"A4-1-17", "CA", "MB", "WB"},
{"A4-1-14", "CA", "SR", "MB", "WB"},
{"A4-1-8", "ID", "CA", "SR", "TR", "ME"},
{"A4-1-11", "TR", "SR"},
{"A4-1-13", "ID", "SR", "SH", "TR", "ME"},
{"A4-2-0", "ID", "CA", "HR"},
{"A4-2-1", "ID", "CA", "HR"},
{"A4-2-2", "ID", "CA", "HR"},
{"A4-2-9", "ID", "CA", "SH", "ME"},
{"A4-2-12", "CA", "SR", "MB", "WB"},
{"A4-2-17", "CA", "MB", "WB"},
{"A4-2-14", "CA", "MB", "WB"},
{"A4-2-8", "ID", "CA", "TR", "ME"},
{"A4-2-13", "ID", "SH", "TR", "ME"},
{"A3-0-13", "ID", "HR", "MB", "WB"},
{"A3-0-9", "MB", "WB"},
{"A3-0-1", "ID", "AU", "SH"},
{"A3-0-0", "ID", "AU", "SH"},
{"A3-0-3", "CA", "HR", "SR"},
{"A3-0-2", "CA", "HR", "SR"},
{"A3-0-14", "ID", "HR", "SH"},
{"A3-E-2", "ID", "HR", "MB", "WB"},
{"A3-1-0", "ID", "CA", "HR"},
{"A3-1-1", "ID", "CA", "HR"},
{"A3-1-2", "ID", "CA", "HR"},
{"A3-1-9", "ID", "CA", "SH", "ME"},
{"A3-1-12", "MB", "WB"},
{"A3-1-17", "MB", "WB"},
{"A3-1-14", "CA", "MB", "WB"},
{"A3-1-8", "ID", "CA", "TR", "ME"},
{"A3-1-11", "TR"},
{"A3-1-13", "ID", "SH", "TR", "ME"},
{"A3-2-0", "ID", "CA", "HR"},
{"A3-2-1", "ID", "CA", "HR"},
{"A3-2-2", "ID", "CA", "HR"},
{"A3-2-9", "ID", "CA", "SH", "ME"},
{"A3-2-12", "MB", "WB"},
{"A3-2-17", "MB", "WB"},
{"A3-2-14", "CA", "MB", "WB"},
{"A3-2-8", "ID", "CA", "TR", "ME"},
{"A3-2-13", "ID", "SH", "TR", "ME"},
{"V-0-0", "AU", "ID", "HR", "ME"},
{"V-0-1", "AU", "ID", "HR", "ME"},
{"V-0-2", "AU", "ID", "HR", "ME"},
{"V-0-3", "AU", "ID", "HR", "ME"},
{"V-0-4", "AU", "ID", "HR", "ME"},
{"V-0-5", "AU", "ID", "HR", "ME"},
{"V-0-6", "AU", "ID", "HR", "ME"},
{"V-0-7", "AU", "ID", "HR", "ME"},
{"V-0-8", "AU", "ID", "HR", "ME"},
{"V-0-9", "AU", "ID", "HR", "ME"},
{"V-0-10", "AU", "ID", "HR", "ME"},
{"V-0-11", "AU", "ID", "HR", "ME"},
{"V-0-12", "AU", "ID", "HR", "ME"},
{"V-0-13", "AU", "ID", "HR", "ME"},
{"V-0-14", "AU", "ID", "HR", "ME"},
{"V-0-15", "AU", "ID", "HR", "ME"},
{"D-0-0", "ID", "HR", "SH"},
{"D-0-0", "ID", "HR", "SH"},
{"D-0-0", "ID", "HR", "SH"},
{"D-0-0", "ID", "HR", "SH"},
{"D-0-0", "ID", "HR", "SH"},
{"D-0-1", "ID", "HR", "SH"},
{"D-0-2", "ID", "HR", "SH"}
};
/*cout << "CHECKING CONNECTIVITY" << endl;
bool allConnected = true;
set<vector<string>>::iterator it1 = placesFrom.begin();
while(it1!=placesFrom.end()){
set<vector<string>>::iterator it2 = placesTo.begin();
while(it2!=placesTo.end()){
if(it1!=it2){
cout << (*it1)[1] << " (" << (*it1)[0] << ") to " << (*it2)[1] << " (" << (*it2)[0] << ")";
if(bfs(university, (*it1)[0], (*it2)[0])){
cout << " is connected." << endl;
}
else{
cout << " is NOT connected." << endl;
allConnected = false;
}
}
++it2;
}
++it1;
}
if(allConnected){
cout << "ALL PLACES CONNECTED!" << endl;
}
else{
cout << "SOME PLACES ARE NOT CONNECTED!" << endl;
}
cout << endl;*/
/*cout << "DIJKSTRA TEST" << endl;
string from = "A3-2-3", to = "D-0-3";
pair<int, map<string, string>> path = dijkstra(university, from, to);
vector<string> pathReal;
if(path.first>=0){
string current = to;
pathReal.push_back(current);
while(current!=from){
current = path.second[current];
pathReal.push_back(current);
}
}
for(int i=pathReal.size()-1; i>=0; --i){
cout << pathReal[i] << endl;
}
cout << "DISTANCE: " << path.first << "m" << endl;*/
cout << "{" << endl << "\t\"sign\":" << endl << "\t\t[" << endl;
for(int i=0; i<placesSigns.size(); ++i){
cout << "\t\t\t{" << endl << "\t\t\t\t\"id\": \"" << placesSigns[i][0] << "\"," << endl << "\t\t\t\t\"line\":" << endl << "\t\t\t\t\t[" << endl;
for(int j=1; j<placesSigns[i].size(); ++j){
pair<int, string> minPath(INF, "");
string building = "";
for(int k=0; k<placesTo[placesSigns[i][j]].size(); ++k){
pair<int, map<string, string>> path = dijkstra(university, placesSigns[i][0], placesTo[placesSigns[i][j]][k]);
if((path.first!=0)&&(path.first<minPath.first)){
vector<string> pathReal;
if(path.first>=0){
string current = placesTo[placesSigns[i][j]][k];
pathReal.push_back(current);
while(current != placesSigns[i][0]){
current = path.second[current];
pathReal.push_back(current);
}
}
minPath.first = path.first;
minPath.second = pathReal[pathReal.size()-2];
building = pathReal[0];
}
}
string direction = "";
for(int k=1; k<university[placesSigns[i][0]].size(); ++k){
if(university[placesSigns[i][0]][k][1] == minPath.second){
direction = university[placesSigns[i][0]][k][2];
}
}
cout << "\t\t\t\t\t\t{" << endl << "\t\t\t\t\t\t\t\"place\": \"" << placesToTranslate[placesSigns[i][j]] << "\"," << endl;
cout << "\t\t\t\t\t\t\t\"direction\": \"" << getArrow(university[placesSigns[i][0]][0][0], direction) << "\"," << endl;
cout << "\t\t\t\t\t\t\t\"distance\": " << minPath.first << "," << endl;
cout << "\t\t\t\t\t\t\t\"building\": \"" << building.substr(0, building.find("-")) << "\"" << endl;
cout << "\t\t\t\t\t\t}";
if(j < (placesSigns[i].size()-1)){
cout << "," << endl;
}
else{
cout << endl;
}
}
cout << "\t\t\t\t\t]" << endl << "\t\t\t}";
if(i < (placesSigns.size()-1)){
cout << "," << endl;
}
else{
cout << endl;
}
}
cout << "\t\t]" << endl << "}" << endl;
}