Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
118 / 5 / 4
Регистрация: 05.05.2013
Сообщений: 336

Acm.timus.ru Time limit exceeded

02.03.2016, 13:50. Показов 2596. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Сама задача http://acm.timus.ru/problem.aspx?space=1&num=1021 и мое решение:

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Linq;
using System.Collections.Generic;
 
namespace _1021_01
{
    class Program
    {
        static List<int> listFirst = new List<int>();
        static List<int> listSecond = new List<int>();
 
        static bool SacramentOfTheSum()
        {
            foreach (int x in listFirst)
                foreach (int y in listSecond)
                {
                    if (x + y == 10000) return true;
                }
            return false;
        }
 
        static void Main(string[] args)
        {
            string[] input = Console.In.ReadToEnd().Split(new char[] { ' ', '\t', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
            int lengthFirst = int.Parse(input[0]);
            for (int i = lengthFirst; i > 0; i--) listFirst.Add(int.Parse(input[i]));
            for (int i = int.Parse(input[lengthFirst + 1]); i > 0; i--) listSecond.Add(int.Parse(input[i + lengthFirst + 1]));
            listFirst.Sort((x, y) => x.CompareTo(y));
            listSecond.Sort((x, y) => -x.CompareTo(y));
            if (SacramentOfTheSum()) Console.WriteLine("YES"); else Console.WriteLine("NO");
        }
    }
}

У меня при тестах выдает все отлично, и в работе никаких ошибок не нашел. Но на сайте Time limit exceeded. Могу предположить, что значения огромные идут на проверку, но не понимаю где он мог тут зациклится?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2016, 13:50
Ответы с готовыми решениями:

Acm.timus.ru runtime error
Делаю самую первую задачку на http://acm.timus.ru/problem.aspx?space=1&amp;num=1001 и не могу понять, в чем у меня ошибка может быть? ...

Acm.timus.ru runtime error
Не компилиурется данное задание. http://acm.timus.ru/problem.aspx?space=1&amp;num=1293 using System; using System.Collections.Generic; ...

Глюк при UpLoad'e файлов: Permission denied или The maximum amount of time for a script to execute was exceeded.
Подскажите, при каких ситуациях могут возникать ошибки Microsoft VBScript runtime error '800a0046' Permission denied или Active...

8
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,844
Записей в блоге: 1
02.03.2016, 14:43
darksector, в тексте задания сказано что реализация должно укладываться в некоторые ограничения:
Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
Ошибка "Time limit exceeded" очевидно говорит что твоя программа работает больше 1 секунды. Думай как можно ускорить.
1
118 / 5 / 4
Регистрация: 05.05.2013
Сообщений: 336
02.03.2016, 14:45  [ТС]
Просто мне мало верится, что они ее нагрузили на целую секунду...
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,844
Записей в блоге: 1
02.03.2016, 15:19
Лучший ответ Сообщение было отмечено darksector как решение

Решение

darksector, напрасно не верится. В задании также сказано что в каждом списке может быть до 50 000 элементов. Сгенерируй файл с нужным количеством записей и проверь сколько времени это занимает. Плюс не забывай что нам неизвестно на каком железе это запускается. В любом случае врать тебе не будут. Сказано тайм-аут исполнения значит занимайся оптимизацией алгоритма чтобы уменьшить время выполнения.
1
118 / 5 / 4
Регистрация: 05.05.2013
Сообщений: 336
02.03.2016, 15:22  [ТС]
Логично. Возможно нужно прикрутить бинарный поиск к решению, не зря же они потребовали сортировку массивов. Спасибо
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,844
Записей в блоге: 1
02.03.2016, 15:26
Цитата Сообщение от darksector Посмотреть сообщение
не зря же они потребовали сортировку массивов
Внимательно прочитай задание. Списки уже отсортированы!
Первый список упорядочен по возрастанию, второй — по убыванию.
То есть её можно убрать из кода.
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
02.03.2016, 19:45
Лучший ответ Сообщение было отмечено darksector как решение

Решение

Как вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
 
class Program
{
    static void Main()
    {
        var n = int.Parse(Console.ReadLine());
 
        var cache = new int[n];
        for (int i = 0; i < cache.Length; i++)
            cache[i] = int.Parse(Console.ReadLine());
 
        n = int.Parse(Console.ReadLine());
        int idx = -1;
        while (n --> 0 && idx < 0)
            idx = Array.BinarySearch(cache, 10000 - int.Parse(Console.ReadLine()));
 
        Console.WriteLine(idx >= 0 ? "YES" : "NO");
    }
}
Думаю, милисекунд за 100 уложится.
Разрешали бы там пользоваться указателями, можно было бы еще ускорить.
1
118 / 5 / 4
Регистрация: 05.05.2013
Сообщений: 336
02.03.2016, 19:56  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Как вариант:
До меня только сейчас дошло, что можно как угодно делать прием. Не знаю почему я вбил себе в голову, что это

C#
1
string[] input = Console.In.ReadToEnd().Split(new char[] { ' ', '\t', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
должно быть как шаблон... Оказалось все намного проще...

Цитата Сообщение от kolorotur Посмотреть сообщение
while (n --> 0 && idx < 0)
* * * * * * idx = Array.BinarySearch(cache, 10000 - int.Parse(Console.ReadLine()));
Смотрел в эту же сторону и сделал немного по другому =)
А что "-->" означает? первый раз вижу.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
02.03.2016, 20:58
Цитата Сообщение от darksector Посмотреть сообщение
А что "-->" означает?
Оператор "n стремится к нулю"
Обычный декремент n--, просто один пробел добавили, другой убрали.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2016, 20:58
Помогаю со студенческими работами здесь

Time limit exceeded
Решаю задачки на одном сайте, там есть онлайн компилятор. Моя VS справляется, но компилятор с сайта говорит Time limit exceeded. Т.к....

Time limit exceeded
Добрый день. Программа - бинарный поиск правой границы в упорядоченном множестве фраз. Возникает ошибка в компиляторе на сайте: &quot;time...

Timus. Задача 1209. 1, 10, 100, 1000
Сразу скажу что на данном форуме с данной задачей я прочитал штук 5 тем. Но в каких то нет отличий от моего кода, в каких то вообще нет...

Интересная задача с Timus и непонятная ошибка
Подскажите пожалуйста что-нибудь. На сайте acm.timus.ru при проверке задачи вылетает ошибка Runtime error. И вся её хитрость, что он не...

Time limit exceeded
http://acm.timus.ru/problem.aspx?space=1&amp;num=1196 Уже все перепробовал, и всегда возникает ошибка &quot;Time limit exceeded&quot; на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru