Софтуерно Инженерство
Loading...
+ Нов въпрос
EmoBG avatar EmoBG 2 Точки

Easter Shopping

Може ли малко помощ, не знам къде ми е грешката, дава ми 80/100 в джъдж.

условие:https://judge.softuni.bg/Contests/Practice/DownloadResource/5627

код:

using System;
using System.Linq;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            var shops = Console.ReadLine().Split().ToList();
            int n = int.Parse(Console.ReadLine());

            for (int i = 0; i < n; i++)
            {
                string[] command = Console.ReadLine().Split().ToArray();
                if (command[0] == "Include")
                {
                    shops.Add(command[1]);
                }
                else if (command[0] == "Visit")
                {
                    string firstOrLast = command[1];
                    int number = int.Parse(command[2]);
                    if (number < shops.Count)
                    {
                        if (firstOrLast == "first")
                        {
                            for (int j = 0; j < number; j++)
                            {
                                shops.RemoveAt(0);
                            }

                        }
                        else if (firstOrLast == "last")
                        {
                            for (int j = 0; j < number; j++)
                            {
                                shops.RemoveAt(shops.Count - 1);
                            }

                        }
                    }
                }
                else if (command[0] == "Prefer")
                {
                    int shop1Index = int.Parse(command[1]);
                    int shop2Index = int.Parse(command[2]);
                    if (shop1Index < shops.Count && shop2Index < shops.Count)
                    {
                        string shop1 = shops[shop1Index];
                        string shop2 = shops[shop2Index];
                        shops.Remove(shop1);
                        shops.Insert(shop1Index, shop2);
                        shops.RemoveAt(shop2Index);
                        shops.Insert(shop2Index, shop1);
                    }
                }
                else if (command[0] == "Place")
                {
                    string shop = command[1];
                    int shopIndex = int.Parse(command[2]);
                    if (shopIndex + 1 < shops.Count)
                    {
                        shops.Insert(shopIndex + 1, shop);
                    }
                }
            }
            Console.WriteLine("Shops left:");
            Console.WriteLine(string.Join(" ", shops));
        }
    }
}
 

0
C# Fundamentals
iGeorg1ev avatar iGeorg1ev 211 Точки
Best Answer

Здравей, 

На командата Visit, направи проверката да е:

if (number <= shops.Count) - добавяш '='

Идеята е ако имаш останали 5 магазина и искаш да махнеш 5 с равно ще ги махне, а без прескача командата и не я изпълнява и работи само за 4 магазина.

Попринцип е хубаво и да проверяваш дали индексите (за останалите команди) са по големи от нула, защото обичат да слагат тестове с индекс -1 например, но в случая дава 100/100 и без такива проверки.

 

Иво

 

0
EmoBG avatar EmoBG 2 Точки

Мерси много!

0