Atenție! Aceasta este o versiune veche a paginii., scrisă la 2013-10-09 16:57:19.
Revizia anterioară   Revizia următoare  

Fișierul intrare/ieșire url.in, url.out Sursă ad-hoc
Autor Cristian Frâncu Adăugată de avatar Catalin.Francu 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
open book Poți vedea testele pentru această problemă accesând atașamentele .

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 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 nenule ș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 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

table(example). |_. 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.

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 4 categorii