Felmérő lesz frekvenciatömbökből 2026.márc.20-án, pénteken.
Tétel
2 pont jár hivatalból. Munkaidő: 45 perc.
1.
Az input.txt fájlban adottak 10000-nél nem nagyobb természetes számok (nem tudjuk előre, hogy hány darab; beolvasás – 1p).
- Írjuk ki, hogy hány olyan érték van a sorozatban, ami nem ismétlődik! (1p)
- Írjuk ki az összes kétjegyű elemet növekvő sorrendben! (1p)
- Írjuk ki azt a legnagyobb háromjegyű természetes számot, ami nem jelenik meg a sorozatban! (1p)
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
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be("input.txt");
int frekv[10001] = {};
int szam;
while (be >> szam) {
frekv[szam]++;
}
int db = 0;
for (int i = 0; i <= 10000; i++)
if (frekv[i] == 1)
db++;
cout << db << endl;
for (int i = 10; i <= 99; i++)
for (int j = 0; j < frekv[i]; j++)
cout << i << " ";
cout << endl;
int legnagyobb = 0;
for(int i = 100; i < 1000; i++)
if (frekv[i] == 0)
legnagyobb = i;
cout << legnagyobb << endl;
return 0;
}
|
2.
A bac.txt fájlban adottak az n és m természetes számok (n, m <= 106), majd egy n elemű és egy m elemű sorozat (természetes számok <= 103; beolvasás - 1p).
- Hány olyan kétjegyű szám van, ami ugyanannyiszor jelenik meg előtagként (prefix) mint utótagként (sufix) az első sorozatban. (1p)
- Minden egyjegyű számra írjuk ki, hogy a második sorozatban hányadik helyen jelenik meg utoljára (vagy -1-et, ha nem jelenik meg). (1p)
- Hány olyan (x,y) elempár létezik, amelyben x és y utolsó két számjegye azonos, illetve x az első, y pedig a második sorozat eleme? (1p)
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
| include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream be("bac.txt");
int n, m;
be >> n >> m;
int hanyszor_prefix[100] = {};
int hanyszor_sufix[100] = {};
for (int i = 0; i < n; i++) {
int szam;
be >> szam;
if (szam >= 10) {
hanyszor_sufix[szam % 100]++;
int seged = szam;
while (seged > 99)
seged /= 10;
hanyszor_prefix[seged]++;
}
}
int db = 0;
for (int i = 10; i <= 99; i++) {
if (hanyszor_prefix[i] != 0 && hanyszor_prefix[i] == hanyszor_sufix[i])
db++;
}
cout << db << endl;
int utoljara_hol[10];
for (int i = 0; i <= 9; i++)
utoljara_hol[i] = -1;
int hanyszor_sufix2[100] = {};
for (int i = 1; i <= m; i++) {
int szam;
be >> szam;
if (szam >= 10)
hanyszor_sufix2[szam%100]++;
if (szam <= 9)
utoljara_hol[szam] = i;
}
for (int i = 0; i <= 9; i++)
cout << i << ": " << utoljara_hol[i] << endl;
int c_alpont = 0;
for (int i = 0; i <= 99; i++) {
int p1 = hanyszor_sufix[i];
int p2 = hanyszor_sufix2[i];
c_alpont += p1*p2;
}
cout << c_alpont << endl;
return 0;
}
|