ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1203. Научная конференция

Test #7 why?
Послано AlexRad 6 апр 2015 14:29
Why my programm does not pass test #7 ?

Give me please that test!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Globalization;
using System.Threading;

namespace _1203.Научная_конференция
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            var n = int.Parse(Console.ReadLine().Trim());

            var reports = new List<Tuple<int, int>>(n);
            for(var i = 0; i < n; i++)
            {
                var tokens = Console.ReadLine().Trim().
                    Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
                reports.Add(Tuple.Create(int.Parse(tokens[0]), int.Parse(tokens[1])));
            }

            reports.Sort();

            var weights = new int[n];
            var weight = -1;

            var reportStartComparer = new ReportStartComparer();
            for (var i = 0; i < n; i++)
            {
                if (weights[i] > weight)
                    weight = weights[i];

                var nextReport = Tuple.Create(reports[i].Item2 + 1, 0);
                var idx = reports.BinarySearch(nextReport, reportStartComparer);
                if (idx < 0)
                    idx = ~idx;
                if (idx < n && weights[idx] < weight + 1)
                    weights[idx] = weight + 1;
            }

            Console.WriteLine(weight + 1);
        }
    }

    class ReportStartComparer: IComparer<Tuple<int, int>>
    {
        public int Compare(Tuple<int, int> x, Tuple<int, int> y)
        {
            return x.Item1 - y.Item1;
        }
    }
}