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
100
de 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; }