Fişierul intrare/ieşire:url.in, url.outSursăad-hoc
AutorCristian FrancuAdăugată deCatalin.FrancuCatalin Francu Catalin.Francu
Timp execuţie pe test0.1 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise

Url

Se dau N şiruri de caractere. Să se decidă care dintre acestea reprezintă URL-uri corecte. Pentru simplificare, un URL corect se consideră a avea următoarele proprietăţi:

  • Conţine până la şase componente: protocolul, numele de utilizator, parola, numele maşinii, portul şi calea.
  • URL-ul începe întotdeauna cu protocolul, care poate fi http sau https, folosind orice combinaţie de litere mari sau mici. El este urmat de ://
  • Opţional, urmează informaţii despre utilizator sub forma nume@ sau nume:parola@. Numele de utilizator şi parola, dacă există, sunt nevide şi constau numai din litere sau cifre.
  • Urmează numele maşinii (hostname). Acesta este compus din două sau mai multe etichete concatenate prin exact câte un caracter "." (punct).
    • Etichetele sunt nevide şi constau numai din litere sau cifre
    • Ultima etichetă este specială. Dacă ea constă numai din cifre, atunci numele maşinii este un IP numeric şi trebuie să conţină exact patru etichete numerice cu valori între 0 şi 255.
  • Opţional, după numele maşinii urmează portul, sub forma :port. El este nevid, format numai din cifre.
  • Opţional, urmează calea. Aceasta începe cu "/" şi conţine litere, cifre şi caractere "/" sau "." (punct) în orice combinaţie.

Date de intrare

Fişierul de intrare url.in conţine pe prima linie numărul N de şiruri de caractere. Pe următoarele N linii se află şirurile de caractere, câte unul pe linie, fără spaţii.

Date de ieşire

În fişierul de ieşire url.out se vor scrie, în ordine, răspunsurile pentru fiecare şir, sub forma:

  • dacă URL-ul este incorect:

NU

  • dacă URL-ul este corect:

DA
protocol
nume utilizator
parola
numele maşinii
portul
calea

Oricare dintre aceste linii pot fi goale, dacă URL-ul nu specifică componenta respectivă.

Restricţii

  • 1 ≤ N ≤ 10
  • Fiecare şir are maxim 1.000 de caractere.

Exemplu

url.inurl.out
5
http://varena.ro
http://elev:abc123@www.888.com:80////calea/spre//succes...
https://127.0.1/
http://!elev*@varena.ro
http://varena.ro/index.html---
DA
http


varena.ro


DA
http
elev
abc123
www.888.com
80
////calea/spre//succes...
NU
NU
NU

Explicaţie

Primul URL este corect şi specifică protocolul (http) şi numele maşinii (varena.ro). El nu specifică numele de utilizator, parola, portul sau calea.

Al doilea URL este corect şi specifică toate cele şase componente.

Al treilea URL este incorect. Deoarece ultima etichetă a numelui maşinii este numerică (1), numele maşinii ar trebui să fie un IP numeric cu 4 etichete. El conţine doar 3 etichete.

Al patrulea URL este incorect. Numele de utilizator conţine caractere nepermise.

Ultimul URL este incorect. Calea conţine caractere nepermise.

Trebuie sa te autentifici pentru a trimite solutii. Click aici