Fișierul intrare/ieșire | url.in, url.out | Sursă | ad-hoc |
---|---|---|---|
Autor | Cristian Frâncu | Adăugată de | Cătălin Frâncu • Catalin.Francu |
Timp de execuție pe test | 0.1 sec | Limită de memorie | 16384 KB |
Scorul tău | N/A | Dificultate | N/A |
Vezi soluțiile trimise | Statistici
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.in | url.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.