| robot_digkult_ksz_202205C++.cpp |
|
1 #include <iostream>
2 #include <vector>
3 #include <map>
4 #include <iomanip>
5
6 using namespace std;
7
8 int main()
9 {
10 setlocale(LC_ALL,"");
11 /* feladat megoldáshoz használt változók */
12 string p,f,v,r;
13 map<char, int> betuk;
14 int ED,KN;
15
16 cout << "Kérem a robot parancsait (pl. EEEKDKEKDKEKDDNN): ";
17 cin >> p;
18 betuk['E'] = 0; betuk['D'] = 0; betuk['K'] = 0; betuk['N'] = 0;
19
20 for (auto& c : p) /* a karakterek (c) a parancsbĂłl (p) a kulcsok --> betuk['E'] pl. */
21 {
22 betuk[c]++;
23 }
24
25 for (auto elem:betuk)
26 {
27 cout << elem.first << ": " << elem.second << endl;
28 }
29
30 ED=abs(betuk['E']-betuk['D']);
31 KN=abs(betuk['K']-betuk['N']);
32 f,v="";
33 if(betuk['E']>betuk['D'])
34 {
35 for(auto i=0;i<ED;i++) f+='E';
36 }
37 else
38 {
39 for(auto i=0;i<ED;i++) f+='D';
40 }
41 if(betuk['K']>betuk['N'])
42 {
43 for(auto i=0;i<KN;i++) v+='K';
44 }
45 else
46 {
47 for(auto i=0;i<KN;i++) v+='N';
48 }
49 r=f+v;
50 cout << "Egy legrövidebb út parancsszava: " << r << endl;
51
52 cout << "Csak kiĂrás, változĂł nĂ©lkĂĽl:" << endl;
53 //Ha kĂ©sĹ‘bbi cĂ©lokra nem kell ez a rövid parancs, akkor Ăgy is mehetett volna a kiĂrás:
54 cout.width(ED);
55 betuk['E']>betuk['D'] ? cout.fill('E'):cout.fill('D');
56 cout << "";
57 cout.width(KN);
58 betuk['K']>betuk['N'] ? cout.fill('K'):cout.fill('N');
59 cout << "" << endl;
60
61 return 0;
62 }