Diferențe pentru problema/url între reviziile #1 si #10

Diferențe între titluri:

url
Url

Diferențe între conținut:

== include(page="template/taskheader" task_id="url") ==
Poveste și cerință...
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.
 
h2. Date de intrare
Fișierul de intrare $url.in$ ...
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.
h2. Date de ieșire
În fișierul de ieșire $url.out$ ...
Î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ă.
 
h2. Restricții
* $... ≤ ... ≤ ...$
* $1 ≤ N ≤ 10$
* Fiecare șir are maxim 1.000 de caractere.
h2. Exemplu
table(example).
|_. url.in |_. url.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
| 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
|
h3. 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.
 
== include(page="template/taskfooter" task_id="url") ==

Nu există diferențe între securitate.