Cerința
NOTĂ : aceasta este o problemă introductivă în funcțiile care procesează șiruri de caractere. Povestea din cerința NU este adevărată.
Hacker-ul Gogu și-a neglijat serios activitatea în ultima vreme, așa că și-a propus să mai spargă încă un site, care, din întâmplare, este chiar www.pbinfo.ro.
Date de intrare
Pe prima linie se citește un șir reprezentând un link al site-ului PbInfo. Pe linia a doua, se citește un număr întreg n (1 <= n <= 20), iar pe următoarele n linii se citesc n cuvinte cheie. Scopul vostru este să aflați dacă hacker-ul Gogu s-a infiltrat și a schimbat link-ul original.
Date de ieșire
Dacă link-ul dat conține unul din cuvintele cheie precizate în fișierul de intrare sau conține cuvântul “virus”, afișați DA, altfel afișați NU.
Restricții și precizări
- cuvintele vor fi mai scurte decât link-ul precizat, iar link-ul va avea maxim
100de caractere; - hacker-ul Gogu nu este profesionist, așa că nu este nevoie să va alarmați;
- input-ul va conține numai litere mici ale alfabetului englez și separatorii
,.!?/:.
Exemplul 1
pbinfo.in
//htttp:www.pbinfo.ro 3 hacked gogu htttp
pbinfo.out
DA
Exemplul 2
pbinfo.in
//http:www.pbinfo.ro 3 hacked gogu htttp
pbinfo.out
NU
Exemplul 3
pbinfo.in
//http:www.pbinfo.virus.ro 1 gogu
pbinfo.out
DA
#include <bits/stdc++.h>
using namespace std;
ifstream cin("pbinfo.in");
ofstream cout("pbinfo.out");
int main()
{
char a[101] , b[101];
cin.getline(a , 101);
int n;
cin >> n;
bool ok=false;
for(int k = 0 ; k < n ; ++k)
{
cin >> b;
int i = 0;
while(a[i]!='\0')
{
int j = 0;
bool adev=true;
while(b[j]!='\0')
{
if(a[i+j]!=b[j])
adev=false;
j++;
}
if(adev)
ok=true;
i++;
}
}
int i = 0;
b[0]='v' , b[1]='i' , b[2]='r' , b[3]='u' , b[4]='s' , b[5]='\0';
while(a[i]!='\0')
{
int j = 0;
bool adev=true;
while(b[j]!='\0')
{
if(a[i+j]!=b[j])
adev=false;
j++;
}
if(adev)
ok=true;
i++;
}
if(ok)
cout << "DA";
else
cout << "NU";
return 0;
}