Професионална програма
Loading...
+ Нов въпрос
krum_43 avatar krum_43 651 Точки

Може ли линк към условието?

В системата няма задача с това име,макар и  че и аз съм я решавал и имам някакъв код..

https://pastebin.com/9tmDeEHV

1
nadejda91iv avatar nadejda91iv 11 Точки

Разбира се,извинявам се .

Това е задачата:

https://judge.softuni.bg/Contests/Practice/Index/1275#0

Благодаря!

0
Axiomatik avatar Axiomatik 1469 Точки
using System;

namespace _1._Encrypt__Sort_and_Print_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int[] nameNumbers = new int[n];
            //int vowel = 0;
            //int consonant = 0;

            for (int i = 0; i < n; i++)
            {
                int sum = 0;
                string name = Console.ReadLine();
                int lenght = name.Length;

                foreach (var element in name)
                {
                    int vowel = 0;
                    int consonant = 0;
                    //if (element == 'a' || element == 'e' || element == 'o' || element == 'y' || element == 'u' || element == 'i')
                    if (element == 'a' ||
                        element == 'e' ||
                        element == 'o' ||
                        element == 'u' ||
                        element == 'i' ||
                        element == 'A' ||
                        element == 'E' ||
                        element == 'O' ||
                        element == 'U' ||
                        element == 'I' 
                        )
                    {
                        vowel = element * lenght;
                    }
                    else
                    {
                        consonant = element / lenght;
                    }

                    sum += vowel + consonant;
                }

                nameNumbers[i] = sum;
            }

            int[] sortedNumbers = new int[n];

            // SHORT VARIANT
            Array.Sort(nameNumbers);

            foreach (var num in nameNumbers)
            {
                Console.WriteLine(num);
            }

            // LONG VARIANT
            for (int i = 0; i < n; i++)
            {
                int currentNumber = int.MaxValue;
                int index = 0;

                for (int j = 0; j < n; j++)
                {
                    int num = nameNumbers[j];

                    if (num < currentNumber)
                    {
                        currentNumber = num;
                        index = j;
                    }
                }
                
                nameNumbers[index] = int.MaxValue;
                sortedNumbers[i] = currentNumber;
            }

            foreach (var num in sortedNumbers)
            {
                Console.WriteLine(num);
            }
        }
    }
}

 

1
MartinBG avatar MartinBG 3861 Точки

Има няколко проблема в решението:

  • работи само за малки гласни букви
  • приема за гласна буквата "y", докато в англ. език тя е променлива
  • не сортира кодираните имена, преди да ги изведе на конзолата

Колегата @Axiomatik вече е дал вариант на оправеното решение, но ето едно и от мен:

using System;
using System.Linq;

namespace Encrypt_Sort_and_Print_Array
{
    internal static class Program
    {
        private static void Main()
        {
            var vowels = "aeouiAEOUI".ToCharArray();
            var namesCount = int.Parse(Console.ReadLine());
            var encoded = new int[namesCount];
            
            for (var i = 0; i < namesCount; i++)
            {
                var name = Console.ReadLine().Trim();
                var lenght = name.Length;
                
                /* // with LINQ
                 encoded[i] = name.ToCharArray()
                    .Select(element => vowels.Contains(element)
                        ? element * lenght
                        : element / lenght)
                    .Sum();*/
                
                foreach (var element in name)
                {
                    encoded[i] += vowels.Contains(element)
                        ? element * lenght
                        : element / lenght;
                }
            }

            Array.Sort(encoded);

            Console.WriteLine(string.Join(Environment.NewLine, encoded));
        }
    }
}

 

1