fbpx

Problema #1346 – PbInfo – Rezolvari PBInfo

de Mihai-Alexandru

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;    
}
Comentarii

S-ar putea sa iti placa