<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3650_-_Perechi3</id>
	<title>3650 - Perechi3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3650_-_Perechi3"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3650_-_Perechi3&amp;action=history"/>
	<updated>2026-05-01T03:41:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3650_-_Perechi3&amp;diff=9764&amp;oldid=prev</id>
		<title>Cristina94: Pagină nouă: ==Enunţ== Se dă un șir de numere hexazecimale, adică numere în care cele 16 cifre sunt din mulțimea {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}. Spunem că două numere se potrivesc dacă nu au cifre hexazecimale comune și împreună conțin toate cifrele în baza 16, cel puțin o dată. De exemplu, 24FFA032 și EDCB1998765 sunt numere care se potrivesc.  ==Cerința== Să se determine numărul perechilor de numere hexazecimale care se potrivesc.  ==Date de intrare== Fișierul de...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3650_-_Perechi3&amp;diff=9764&amp;oldid=prev"/>
		<updated>2024-04-01T14:00:07Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: ==Enunţ== Se dă un șir de numere hexazecimale, adică numere în care cele 16 cifre sunt din mulțimea {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}. Spunem că două numere se potrivesc dacă nu au cifre hexazecimale comune și împreună conțin toate cifrele în baza 16, cel puțin o dată. De exemplu, 24FFA032 și EDCB1998765 sunt numere care se potrivesc.  ==Cerința== Să se determine numărul perechilor de numere hexazecimale care se potrivesc.  ==Date de intrare== Fișierul de...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Enunţ==&lt;br /&gt;
Se dă un șir de numere hexazecimale, adică numere în care cele 16 cifre sunt din mulțimea {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}. Spunem că două numere se potrivesc dacă nu au cifre hexazecimale comune și împreună conțin toate cifrele în baza 16, cel puțin o dată. De exemplu, 24FFA032 și EDCB1998765 sunt numere care se potrivesc.&lt;br /&gt;
&lt;br /&gt;
==Cerința==&lt;br /&gt;
Să se determine numărul perechilor de numere hexazecimale care se potrivesc.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Fișierul de intrare perechi.in conține pe mai multe linii șirul de numere hexazecimale, deci numerele sunt separate prin spații sau enter.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Fișierul de ieșire perechi.out va conține un singur număr natural reprezentând numărul perechilor de numere care se potrivesc.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*În șir sunt cel puțin două numere și cel mult 200.000 de numere&lt;br /&gt;
*Numerele conțin cel puțin o cifră și cel mult 30 de cifre&lt;br /&gt;
*Cifrele hexazecimale de la 10 la 15 se scriu cu ajutorul literelor mari A, B, C, D, E, F.&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;perechi.in&lt;br /&gt;
:24FFA032 EDCB1998765&lt;br /&gt;
:24FA03 24FFA032 0&lt;br /&gt;
:123456789ABCDEF12&lt;br /&gt;
&lt;br /&gt;
;perechi.out&lt;br /&gt;
:4&lt;br /&gt;
&lt;br /&gt;
==Explicație==&lt;br /&gt;
Cele patru perechi sunt: (24FFA032, EDCB1998765), (EDCB1998765, 24FA03), (EDCB1998765, 24FFA032) și (0, 123456789ABCDEF12).&lt;br /&gt;
&lt;br /&gt;
==Exemplul 2==&lt;br /&gt;
;perechi.in&lt;br /&gt;
:G123 24FFA032 EDCB1998765&lt;br /&gt;
&lt;br /&gt;
;perechi.out&lt;br /&gt;
:Date de intrare invalide!&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3650 perechi3&lt;br /&gt;
def citeste_numere_hexazecimale(fisier):&lt;br /&gt;
  numere = []&lt;br /&gt;
  for linie in fisier:&lt;br /&gt;
    numere.extend(linie.split())&lt;br /&gt;
  return numere&lt;br /&gt;
&lt;br /&gt;
def se_potrivesc(numar1, numar2):&lt;br /&gt;
  cifre1 = set(numar1)&lt;br /&gt;
  cifre2 = set(numar2)&lt;br /&gt;
  if any(cifra in cifre2 for cifra in cifre1):&lt;br /&gt;
    return False&lt;br /&gt;
  cifre_unite = cifre1.union(cifre2)&lt;br /&gt;
  return len(cifre_unite) == 16&lt;br /&gt;
&lt;br /&gt;
def numara_perechi_potrivite(numere):&lt;br /&gt;
  count = 0&lt;br /&gt;
  for i in range(len(numere)):&lt;br /&gt;
    for j in range(i + 1, len(numere)):&lt;br /&gt;
      if se_potrivesc(numere[i], numere[j]):&lt;br /&gt;
        count += 1&lt;br /&gt;
  return count&lt;br /&gt;
&lt;br /&gt;
def verifica_date_intrare(numere):&lt;br /&gt;
  if len(numere) &amp;lt; 2 or len(numere) &amp;gt; 200000:&lt;br /&gt;
    return False&lt;br /&gt;
  for numar in numere:&lt;br /&gt;
    if not all(caracter.isdigit() or caracter.upper() in &amp;quot;ABCDEF&amp;quot; for caracter in numar):&lt;br /&gt;
      return False&lt;br /&gt;
  return True&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
  with open(&amp;quot;perechi.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
    numere_hexazecimale = citeste_numere_hexazecimale(fin)&lt;br /&gt;
&lt;br /&gt;
  if not verifica_date_intrare(numere_hexazecimale):&lt;br /&gt;
    with open(&amp;quot;perechi.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
      fout.write(&amp;quot;Date de intrare invalide!&amp;quot;)&lt;br /&gt;
    return&lt;br /&gt;
&lt;br /&gt;
  numar_perechi_potrivite = numara_perechi_potrivite(numere_hexazecimale)&lt;br /&gt;
&lt;br /&gt;
  with open(&amp;quot;perechi.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
    fout.write(str(numar_perechi_potrivite))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
  main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cristina94</name></author>
	</entry>
</feed>