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
| #include <iostream>
#include <fstream>
using namespace std;
int main()
{
int frekv1[100]= {};
int frekv2[100]= {};
ifstream fin("bijuterii.in");
int nc;
int np;
fin>>nc;
fin>>np;
for (int i=1; i<= nc; i++)
{
int a;
fin>>a;
while (a>99)
a=a/10;
frekv1[a]++;
int aa=a%10*10+a/10;
frekv1 [aa]++;
}
for (int i=1; i<=np; i++)
{
int a;
fin>>a;
while (a>99)
a=a/10;
frekv2[a]++;
int aa=a%10*10+a/10;
frekv2[aa]++;
}
bool van = false;
for (int i=10; i<100 && !van; i++)
{
if (frekv1[i]>0 && frekv2[i]>0)
{
van=true;
cout<<"DA" ;
}
}
if (van==false)
cout<<"NU";
return 0;
}
/*
A program beolvassa a számokat és egy frekvencia-
tömbben számolja, hogy a számok első két számjegyéből
alkotott értékek és azoknak a fordítottja hányszor
jelenik meg. Ezt külön-külön elvégezzük mindkét
sorozatra. Majd megnézzük, hogy van-e olyan érték
10 és 99 között, amelyikhez mindkét frekvenciatömbben
nem nulla gyakoriság rendelődik, és kiírja a megfelelő
üzenetet.
A program idő szempontjából azért hatékony, mert
csak egyszer halad végig a sorozatok elemein,
mindegyikre konstans számú lépést végez.
*/
|