<?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=3155_-_anagrame4</id>
	<title>3155 - anagrame4 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3155_-_anagrame4"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3155_-_anagrame4&amp;action=history"/>
	<updated>2026-05-03T05:26:44Z</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=3155_-_anagrame4&amp;diff=9994&amp;oldid=prev</id>
		<title>Benzar Ioan: Pagină nouă: == Cerința == Se citește de la tastatură un cuvânt s format din cel mult 11 litere mici distincte. Să se genereze în ordine alfabetică și să se afișeze toate anagramele cuvântului s în care consoanele sunt puncte fixe. == Date de intrare == Programul citește de la tastatură cuvântul s. == Date de ieșire == Programul va afișa pe ecran pe rânduri separate anagramele cuvântului citit în care consoanele rămân pe pozițiile inițiale. == Restricții și preci...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3155_-_anagrame4&amp;diff=9994&amp;oldid=prev"/>
		<updated>2024-06-03T16:22:43Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Se citește de la tastatură un cuvânt s format din cel mult 11 litere mici distincte. Să se genereze în ordine alfabetică și să se afișeze toate anagramele cuvântului s în care consoanele sunt puncte fixe. == Date de intrare == Programul citește de la tastatură cuvântul s. == Date de ieșire == Programul va afișa pe ecran pe rânduri separate anagramele cuvântului citit în care consoanele rămân pe pozițiile inițiale. == Restricții și preci...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Cerința ==&lt;br /&gt;
Se citește de la tastatură un cuvânt s format din cel mult 11 litere mici distincte. Să se genereze în ordine alfabetică și să se afișeze toate anagramele cuvântului s în care consoanele sunt puncte fixe.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură cuvântul s.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran pe rânduri separate anagramele cuvântului citit în care consoanele rămân pe pozițiile inițiale.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*cuvântul s are cel mult 11 caractere și este format din litere mici distincte&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
sorina&lt;br /&gt;
;Iesire&lt;br /&gt;
sarino&amp;lt;br&amp;gt;&lt;br /&gt;
saroni&amp;lt;br&amp;gt;&lt;br /&gt;
sirano&amp;lt;br&amp;gt;&lt;br /&gt;
sirona&amp;lt;br&amp;gt;&lt;br /&gt;
sorani&amp;lt;br&amp;gt;&lt;br /&gt;
sorina&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import itertools&lt;br /&gt;
&lt;br /&gt;
def read_input():&lt;br /&gt;
    return input().strip()&lt;br /&gt;
&lt;br /&gt;
def write_output(anagrams):&lt;br /&gt;
    for anagram in anagrams:&lt;br /&gt;
        print(anagram)&lt;br /&gt;
&lt;br /&gt;
def generate_anagrams(word):&lt;br /&gt;
    vowels = &amp;#039;aeiou&amp;#039;&lt;br /&gt;
    vowel_positions = [(i, char) for i, char in enumerate(word) if char in vowels]&lt;br /&gt;
    fixed_positions = [(i, char) for i, char in enumerate(word) if char not in vowels]&lt;br /&gt;
    &lt;br /&gt;
    if not vowel_positions:&lt;br /&gt;
        return [word]&lt;br /&gt;
    &lt;br /&gt;
    vowel_chars = [char for _, char in vowel_positions]&lt;br /&gt;
    vowel_permutations = sorted(set(itertools.permutations(vowel_chars)))&lt;br /&gt;
    &lt;br /&gt;
    anagrams = []&lt;br /&gt;
    for perm in vowel_permutations:&lt;br /&gt;
        perm_word = list(word)&lt;br /&gt;
        for (i, _), char in zip(vowel_positions, perm):&lt;br /&gt;
            perm_word[i] = char&lt;br /&gt;
        anagrams.append(&amp;quot;&amp;quot;.join(perm_word))&lt;br /&gt;
    &lt;br /&gt;
    return anagrams&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    word = read_input()&lt;br /&gt;
    &lt;br /&gt;
    if not (1 &amp;lt;= len(word) &amp;lt;= 11):&lt;br /&gt;
        raise ValueError(&amp;quot;Cuvântul trebuie să aibă între 1 și 11 caractere.&amp;quot;)&lt;br /&gt;
    if not all(char.islower() and char.isalpha() for char in word):&lt;br /&gt;
        raise ValueError(&amp;quot;Cuvântul trebuie să fie format doar din litere mici distincte.&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    anagrams = generate_anagrams(word)&lt;br /&gt;
    write_output(anagrams)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
</feed>