Имя: Пароль:
IT
 
Помогите понять задачу
,
0 DES
 
10.08.18
06:39
тестовое задание для абитуры

Раскрашивание точек
ТL =1 секунда
МL=16 мегабайт
Лимит по памяти важен. Далеко не все интерпретируемые языки смогут запустить интерпретатор в этих ограничениях. Выбирайте инструмент в соответствии с задачей
Реализуйте структуру данных, которая может выполнять следующие две операции:
PAINT(х, у, со1) -- покрасить точку (х, у) в цвет соl
QUERY(х, у) — определить цвет точки (х, у).
Покрашенные точки могут быть красными или синими.
Изначально все точки плоскости считаются непокрашенными.
*Известно, что размер любого множества точек, в котором совпадают остатки от деления координат х на 100019, не превосходит 100.

Поясните что им *ИЗВЕСТНО ?
последнее предложение вызывает затруднение понимания.
140 NSSerg
 
10.08.18
15:38
(139) И как ты до того как получил значение этих 10^5 точек узнаешь какие из массивов лишние? Ты же вроде хочешь сразу объявить двумерный массив. Или это какие-то хитрые массивы, которым можно присваивать индекс в потоке?
141 NSSerg
 
10.08.18
15:39
Я так понял, что ты теперь понимаешь что твое решение не укладывается по памяти?
142 Garykom
 
гуру
10.08.18
15:40
(140) Одного массива 10^5*100 разве не хватит?
143 Garykom
 
гуру
10.08.18
15:41
(142)+ Двумерный массив 100000 на 100
144 NSSerg
 
10.08.18
15:44
(143) И какие у тебя будут исключены остатки по модулю 100019 при заведении массива?

Вот у тебя в потоке первая точка
1,100
Вторая 100019,100
//
В какой элемент массива ты запишешь первую, в какой вторую?
//
10^5*100*8 байт (две координаты, х и y, каждая по 4 байта) это 80 мегабайт.
145 Garykom
 
гуру
10.08.18
15:46
(144) Входной поток он линейный с последовательным чтением или можно возвращаться к старым элементам но номеру?
146 NSSerg
 
10.08.18
15:48
(145) Допустим можно возвращаться.
147 Lama12
 
10.08.18
15:48
(23) Спасибо за поправку. Век живи, век учись.

Ну вы монстры... Дочитал до сюда. Вроде понимаю о чем говорите, но блин так это далеко и давно было. И "по кусочкам"...
Вот ТС куда-то слился.
148 Garykom
 
гуру
10.08.18
15:48
(144) Хм делаем массив 100019 х 100 и x координата задается остатком от деления, внутри храним в 100 элементах только y координату
149 Garykom
 
гуру
10.08.18
15:51
(148)+ не влазит 40 мегабайт будет ((
150 NSSerg
 
10.08.18
15:52
(148) И как ты отличишь две разные точки, с разным x, но с одинаковым остатком от деления на 100019?
151 Garykom
 
гуру
10.08.18
15:52
(149)+ Но если можно возвращаться (146) то хранить можно не значение y координаты а номер точки из входных данных
152 Garykom
 
гуру
10.08.18
15:53
(150) Они рядом будут записаны в 100, их порядковым номером (151)
153 NSSerg
 
10.08.18
15:54
(151) Как, ииз какой структуры ты будешь получать номер точки?
Вот у тебя пара запросов на изменение цвкта точки, и один чтение. Тебе каждый раз после первой записи нужно точно определить "порядковый номер точки". Как ты это сделаешь? Хеш-таблицей? Map? :)
154 NSSerg
 
10.08.18
15:57
+ (153) Три раза встретилась одна и та-же точка, как ты узнаешь что это одна и та-же точка, если ты не хранишь её координату?
155 Garykom
 
гуру
10.08.18
16:03
(154) Чем то напоминает задачку на сжатие данных, координаты у нас до 10^9 но точек всего 10^5 можно составить "словарик допустимых координат"

Ответ же нам нужен только цвет R, B или N координату не надо возвращать - их можно не хранить.

Провести при чтении некую замену координат где будет подмена порядкового номера точки встретившегося позднее на самый первый номер этой же точки (с этими же координатами).
156 Cyberhawk
 
10.08.18
16:08
"координаты у нас до 10^9" // Орицательные тоже могут быть. Т.е. координата по У ограничена только сверху, а по Х - только слева (больше нуля, типа). Плюс есть ограничение на размер области по высоте и ширине, описанные мною ранее
157 Garykom
 
гуру
10.08.18
16:09
(156) 0 <= x,y <= 10^9
https://prnt.sc/kgyyos
158 Cyberhawk
 
10.08.18
16:11
И Я про то же. Не ясно, зачем ты это написал.
159 Garykom
 
гуру
10.08.18
16:11
(158) Не может быть отрицательных координат x или y
160 NSSerg
 
10.08.18
16:12
(155) Ты понимаешь что элементарную задачу, которая решается начинающим программистом, джуниором - минут за 5 - ты превратил невесть в что, и до сих пор не выдал рабочего решения укладывающегося в лимиты?
Когда есть решение в ветке за О(N), на hashMap, и понятно что при N элементах в потоке - решения с лучшей асимптотикой быть не может. Так как на чтение из потока нужно О(N) операций.
(156) В условии написано: 0<=x,y<=10^9
Эта запись означает что обе координаты меньше либо равны 10^9, и обе больше либо равны нулю.
161 Cyberhawk
 
10.08.18
16:13
(159) (160) Это одна из двух возможных трактовок
162 Garykom
 
гуру
10.08.18
16:16
(160) Для решения на hashMap, ты ключом что будешь делать?

Сколько будет операций при добавлении новых значений в 10^5 HashMap или получении значения оттуда?
Число 10 операций откуда взялось?
163 NSSerg
 
10.08.18
16:25
(162) 10 это двоичный логарифм от 1000. К hashmap это не имеет никакого значения. Это количество операций для поиска и добавления значения в "map" (бинарное дерево) с 1000 элементами.
//
В HashMap добавление и чтение это О(1) - константа. Одна операция.
Для добавления 10^5 значений в HashMap потребуется 10^5 (О(10^5)) операций.
164 Garykom
 
гуру
10.08.18
16:25
(162)+ Ключ (x+y) записываем в 8 байт, еще 1 байт для цвета.
Макс элементов 10^5 итого 10^5 * 9 = 900 килобайт.

Но не учитываются накладные расходы на хранение списка ключей и списка значений, а они для 10^5 элементов будут немаленькие.
https://habr.com/post/159557/
165 Garykom
 
гуру
10.08.18
16:26
(163) >В HashMap добавление и чтение это О(1) - константа. Одна операция.

Офигеть а за сколько времени выполняется эта одна операция в мс?
166 Garykom
 
гуру
10.08.18
16:29
(165) Я выше приводил картинку где есть размеры коллекций и быстродействие
167 Garykom
 
гуру
10.08.18
16:29
168 NSSerg
 
10.08.18
16:33
(165) Неважно. Там константа конечно больше чем в map, но не на много.
Около 10^-6 сек.
(166) И что ты понял из этой картинки? Что реализация HashMap не очень хорошая, и сложность конечно заметно меньше логарифма, но чуть хуже чем О(1)?
А хорошая реализация в LinkedHash?
Ну и что?
169 NSSerg
 
10.08.18
16:35
До 50000 элементов , а это и есть почти 10^5, как и есть в условии - скорость доступа 1микросекунда, 10^-6. Зависимость становится чуть хуже чем константа на намного больших размерах.
170 NSSerg
 
10.08.18
16:39
(164) Немаленькие это в 20 раз больше, или максимум в два раза больше? По условию у нас лимит до 15 мегабайт.
(162) Это очень странный вопрос. Конечно
typedef pair<uint, uint> Key;
171 NSSerg
 
10.08.18
16:46
Всё было описано выше. На хранение каждой точки нужно 9 байт. Итого потребуется 900 килобайт, ну и естественно плюс накладные расходы. Допустим даже в 10 раз больше. Все-равно укладываемся.
Не укладываешься - так поменяй в коде hashmap на map, делов то. Будет чуть медленней, на логарифм, но места будет занимать меньше.
172 Garykom
 
гуру
10.08.18
16:52
(171) Угу 3 мегабайта накладных расходов примерно
173 Digger
 
10.08.18
17:25
(147)  +1
Почитал, как будто снова окунулся в детство.  Все это было, но блин так давно. Чувствую уже давно стал "не программистом",  совсем мозг заплыл адинэсом. )
174 NSSerg
 
10.08.18
17:36
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
typedef pair<unsigned int, unsigned int> Key;
struct pair_hash {
    template <class T1, class T2>
    std::size_t operator () (const pair<T1,T2> &p) const {
        auto h1 = hash<T1>{}(p.first);
        auto h2 = hash<T2>{}(p.second);
        return h1 ^ h2;  
    }
};
int main()
{
    std::ios::sync_with_stdio(false);
    unordered_map <Key,char,pair_hash> a;
    int n;
    int op;
    unsigned int x,y;
    char c;
    cin >> n;
    for(int i=0;i<n;i++) {
      cin >> op >> x >> y;
      if (op==1) { cin >> c; a[make_pair(x,y)]=c;} else
      {
      auto f=a.find(make_pair(x,y));      
      if (f==a.end()) cout << 'N'; else
        cout << f->second << "\n";
      }
    }
    cout.flush();
    return 0;
}
Вот код,
если не нравятся Хеш-таблицы, достаточно unordered_map поменять на map
175 NSSerg
 
10.08.18
21:39
виноват, косяк, забыл перевод строки, в тестовом примере ‘N’ в последней строке, поэтому глюк не заметил
auto f=a.find(make_pair(x,y));      
      if (f==a.end()) cout << 'N' << "\n"; else
        cout << f->second << "\n";
176 DES
 
10.08.18
22:16
это на каком ЯП??
177 NSSerg
 
10.08.18
22:18
(176) C++
можешь проверить на любом онлайн компиляторе. Я так и проверял на тех входных данных которые на твоем скриншоте задания.
могу написать на другом ЯП. На каком надо?
178 Cyberhawk
 
10.08.18
22:20
(177) На 1С давай, чтоб всем понятно было )
179 NSSerg
 
10.08.18
22:25
(178) на 1с слишком просто.
только условие не выполнить, 1с не умеет читать из консольного ввода.
180 Lama12
 
10.08.18
22:41
(176) Извиняюсь, а точно имеет смысл абитура?
Конечно ИМХО, но С++ хорошо бы знать в лицо.
Очень рекомендую.
181 DES
 
11.08.18
08:44
(177) на с
182 DES
 
11.08.18
08:46
(177) и еще …
в задании указаны условия, нужно ли в решения делать проверку условий или условия указаны для понимания объема данных и ресурсов
183 NSSerg
 
11.08.18
08:52
(182) нет, проверку делать не надо. все условия написаны для того чтоб понимать что может быть во входном потоке.

код на C++11, он немного ускоряет написание по сравнению с чистым C++
184 DES
 
11.08.18
09:05
нужен чистый классический С
185 DES
 
11.08.18
09:07
(179) 1с умеет же читать с консоли
ВвестиЧисло
186 NSSerg
 
11.08.18
09:21
(185) это не то :)
вечером, освобожусь, напишу на си
задачу можно решить без использования индексов, бинарных деревьев и хеша, на списках.
заводим массив на 100019 элементов, в который пишем ссылку  в списке на первую точку с заданным остатком от деления x на 100019.
а в списке (общем для всех точек) с каждой точкой хранится ссылка на следующую точку с таким же остатком от деления.
итого у нас на поиск каждой точки уйдет не больше 100 операций.
И в лимит по памяти легко уложились.
187 DES
 
11.08.18
09:43
т.е. мы вычислили что объем массива не более 100019 ?
188 DES
 
11.08.18
09:44
я не понял в чем фишка остатка от деления. что это определяет?
189 NSSerg
 
11.08.18
10:17
(187) В условии написано что таких чисел не больше ста.
У нас есть точка с координатой x,y
Если мы будем искать её в нашей структуре только среди точке с остатком отделения x на 100019 таким-же как и у текущей точки, то потратим на это не более 100 операций, потребуется перебрать не больше 100 точке.

Структуры для хранения две.
Первая - массив на 100019 элементов, по два байта на значение - ссылка на первый элемент с заданным остаток от деления в списке.
Вторая - связный список, на N+1 элементов
(максимум на 100001). Для удобства нулевой элемент использовать не будем, 0 - это будет пустая ссылка.
В котором хранятся координаты x и y (8 байт), цвет (1 байт), и ссылка на следующий номер элемента в этом массиве с таким-же остатком от деления x на 1000019 (2 байта)
Итого 100001*11+100019*2 байт, чуть больше мегабайта.
Связный список сделаем на массиве - для скорости. Чтоб не выделять память по одному элементу.
190 NSSerg
 
11.08.18
10:23
+(189) То есть мы по сути реализуем хеш-таблицу, где в качестве хеша используется остаток от деления координаты x на 100019. Как и хотел Garykom, но у него что-то не получилось :)
191 NSSerg
 
11.08.18
10:46
Виноват, все ссылки по 4 байта.
192 NSSerg
 
11.08.18
12:39
#define size 100019
#define maxN 100001
#include <stdio.h>
#include <stdlib.h>
typedef unsigned long int UINT;
typedef struct node
{
    UINT x,y,next;
    char c;
};
struct node List[maxN];
UINT Hash[size];
UINT ListN=0;
char QUERY(UINT x, UINT y)
{
    UINT p=Hash[x%size];
    while (p!=0)
    {
        struct node Node=List[p];
        if ((Node.x==x)&&(Node.y==y)) return Node.c;
        p=Node.next;
    }
    return 'N';
}

void PAINT(UINT x, UINT y, char col)
{
    UINT p=Hash[x%size];
    while (p!=0)
    {
        if ((List[p].x==x)&&(List[p].y==y))
        {
            List[p].c=col;
            return;
        }
        p=List[p].next;
    }
    List[++ListN].x=x;
    List[ListN].y=y;
    List[ListN].c=col;
    List[ListN].next=Hash[x%size];
    Hash[x%size]=ListN;
}
int main()
{
    int i;
    for (i=0; i<size; i++) Hash[i]=0;
    int n;
    scanf("%d",&n);
    UINT op,x,y;
    char c;
    for (i=0; i<n; i++)
    {
        scanf("%lu%lu%lu",&op,&x,&y);
        if (op==1)
        {
            do
            {
                scanf("%c",&c);
            }
            while ((c!='R')&&(c!='B'));
            PAINT(x,y,c);
        }
        else
            printf("%c\n",QUERY(x,y));
    }
    return 0;
}
193 NSSerg
 
11.08.18
12:42
#define size 100019
#define maxN 100001
#include <stdio.h>
#include <stdlib.h>
typedef unsigned long int UINT;
typedef struct node
{
    UINT x,y,next;
    char c;
};
struct node List[maxN];
UINT Hash[size];
UINT ListN=0;
char QUERY(UINT x, UINT y)
{
    UINT p=Hash[x%size];
    while (p!=0)
    {
        if ((List[p].x==x)&&(List[p].y==y)) return List[p].c;
        p=List[p].next;
    }
    return 'N';
}

void PAINT(UINT x, UINT y, char col)
{
    UINT p=Hash[x%size];
    while (p!=0)
    {
        if ((List[p].x==x)&&(List[p].y==y))
        {
            List[p].c=col;
            return;
        }
        p=List[p].next;
    }
    List[++ListN].x=x;
    List[ListN].y=y;
    List[ListN].c=col;
    List[ListN].next=Hash[x%size];
    Hash[x%size]=ListN;
}
int main()
{
    int i;
    for (i=0; i<size; i++) Hash[i]=0;
    int n;
    scanf("%d",&n);
    UINT op,x,y;
    char c;
    for (i=0; i<n; i++)
    {
        scanf("%lu%lu%lu",&op,&x,&y);
        if (op==1)
        {
            do
            {
                scanf("%c",&c);
            }
            while ((c!='R')&&(c!='B'));
            PAINT(x,y,c);
        }
        else
            printf("%c\n",QUERY(x,y));
    }
    return 0;
}

Так единообразней. По сути это реализация простейшей Хеш-таблицы.
194 NSSerg
 
11.08.18
14:07
В typedef struct node - typedef лишнее. Нужно писать
typedef unsigned long int UINT;
struct node
{
    UINT x,y,next;
    char c;
};
struct node List[maxN];
195 kyvv
 
11.08.18
17:03
ТС ты не одинок, но я не поступаю :)
"Известно, что размер любого множества точек, в котором совпадают остатки от деления координат х на 100019, не превосходит 100"

...множество(из пар х и у), в котором совпадают остатки от деления координат х на const = 100019 (x1/const=xN/const). Или  хто там должЁн совпасть?
196 kyvv
 
11.08.18
17:27
NSSerg слился, ...
197 kyvv
 
11.08.18
17:59
Да и фиг с ней.
198 NSSerg
 
11.08.18
18:07
(196) в смысле?
199 kyvv
 
11.08.18
18:26
(198) из ветки. Понятно, что мастера тупняки достали.
200 NSSerg
 
11.08.18
18:29
(177) на вход подаются в том числе запросы на добавление точек, с координатами (x,y)
И разных точек, но при этом с одинаковым x%100019  - не может быть больше ста.
201 DES
 
11.08.18
19:16
а вы видели пример входящих данных? там х далеко не 100019
202 NSSerg
 
11.08.18
19:53
(201) Это к чему?
203 NSSerg
 
11.08.18
20:04
(201) Если вам там учиться, и уже сейчас дают задачи уровня "В"-"C", то такие задачи в любом случае придется учиться решать.
Чтоб не было непоняток с условиями, не было далеко идущих выводов из тестовых примеров, нужно просто зарегистрироваться на codeforces.ru и начать решать задачи, например начиная с тех, которые решило большее количество участников.
https://codeforces.com/problemset?order=BY_SOLVED_DESC
Практически сразу станет проще ориентироваться в подобного рода заданиях.
Значение имеют только условия. Тестовый пример в условии всегда простой, и не покрывает всех возможных случаев. Только даже если бы в примере было x=100019 - что это меняет? Условие то осталось прежним.
204 kyvv
 
11.08.18
21:17
(200) С делением по модулю и совпадениями понял, хоть это было и не мне. Это как-то влияет на множество точек плоскости для раскраски?
205 NSSerg
 
11.08.18
21:25
(204) Если мы формируем списки по точкам с заданным x%100019, то мы можем быть уверенны что влезем в TL.
Каждую точку мы ищем пробегаясь по списку из уже добавленных точек с фиксированным x%100019, а список не более чем из 100 точек по условию. Всего запросов максимально 10^5 из условия. Всего максимальное количество операций получается равно количество запросов помноженное на максимальное количество операций в каждом запросе, это 100 операций.
Итого 10^5*100=10^7 операций. Точно уложимся.
206 NSSerg
 
11.08.18
21:38
(204) Это не деление по модулю, это остаток от деления.
207 NSSerg
 
11.08.18
21:43
(206) Хотя ладно, это почти одно и то же :)
208 kyvv
 
11.08.18
21:45
Что-то не увидел в условии, что нет множеств точек, в которых не совпадают остатки от деления координат х на 100019
209 kyvv
 
11.08.18
21:56
(0) Что есть абитура?
210 NSSerg
 
11.08.18
22:04
(208) "Известно, что размер любого множества точек, в котором совпадают остатки от деления координат х на 100019, не превосходит 100."
Код в (193), при каждом запросе - ищет только среди точек с совпадающим x%100019 с искомой точкой. А по условию таких точек не больше 100. Если бы их было не больше 10000, то при некоторых наборах исходных данных код бы не укладывался в таймлимит. Но их не больше 100, и это дает возможность использовать x%100019 как значение хеш функции, и гарантирует что цепочка значений не будет превышать 100 элементов.
211 kyvv
 
11.08.18
22:04
(205) В условии вроде бы про размер интерпретатора?
212 NSSerg
 
11.08.18
22:05
(211) В условии, как и в любой другой задаче спортивного программирования - про ограничения на время, и на память.
213 NSSerg
 
11.08.18
22:08
TL - таймлимит.
ML - меморилимит.
Накладывает ограничения на алгоритмы, чтоб не прошли медленные и требующие большого количества памяти решения.
Данное ограничение отсекает все решения за О(N^2), и простые решения требующие огромного числа памяти.
214 kyvv
 
11.08.18
22:11
(212 Лимит по памяти важен. Далеко не все интерпретируемые языки смогут запустить интерпретатор в этих ограничениях. Выбирайте инструмент в соответствии с задачей. Это разве о данных? Как вы time вычисляете?
215 DES
 
11.08.18
22:12
СПС
216 NSSerg
 
11.08.18
22:17
(214) Есть общепринятые стандарты количества простых операций которые можно выполнить в одну секунду. Это порядка 10^7, максимум 5*10^8
Чтоб его прочувствовать самостоятельно, достаточно (203)
Как и везде там автоматическая проверка, и выводит и время вычисления, и израсходованную память, и TL или ML если превысил. То есть любой человек с достаточным опытом решения задач спортивного программирования - понимает сколько операций влезет в TL.
А чтоб проверить память - достаточно sizeof, посмотреть в диспетчере задач, либо просто уметь её вычислять.
217 NSSerg
 
11.08.18
23:49
Яндекс проводит чемпионат  по программированию
В этой ветке немного есть про термины и суть подобных задач.
218 Mort
 
12.08.18
00:56
Короче делаем так.

1. Берем пример одного прекрасного узкоспециализированного решения.

2. Формулируем его в задачу.

3. Т.к. без трудностей с которым пришлось столкнутся гению из (1) задача решается на раз-два, дополняем её тупыми условиями.

4. Готово! Можно запускать.

Такая херня через раз встречается на собеседованиях. Особенно если вас собеседует тот самый гений из (1). А задача - говно.
219 NSSerg
 
12.08.18
01:46
(218) Если ты хочешь стать алгоритмистом-программистом, то должен уметь пользоваться инструментами для проверки качества решения, и уметь решать типовые задачи. Любой студент современный на прикладной математике и информатике и подобных специальностях - должен щелкать такие задачи как орешки, учитывая что она в лоб на map или hashmap решается за несколько минут.
Подобные задачи решают  и в вузах, и на собеседованиях на должности где требуется алгоритмика в любой серьезной компании. Ну и что-то мне подсказывает что они знают как выявлять способности и познания в алгоритмике.
Яндекс например проводит (217) по результатам которого приглашает на работу. На собеседованиях у них я таких задач не видел, но попросить написать реализацию хеш-таблицы они на собеседовании вполне могут.
А что не так с задачей - я в упор не понимаю. Обычная задача на алгоритмику.
220 NSSerg
 
12.08.18
02:14
Соревнования по спортивному программированию для отбора программистов устраивают все крупные компании. Google Code Jam, Facebook Hacker Cup, Mail Code Cup (не путать с AI CUP), Яндекс Алгоритм, VK Cup  и т.д.
Им нужны специалисты с хорошей алгоритмикой. Ну и вузы по специальности "прикладная математика и информатика" готовят именно специалистов умеющих решать подобные задачи, потому что это востребовано рынком.  А в (0) несложная конечно, но хорошая алгоритмическая задача.
221 Mort
 
12.08.18
02:37
(219) Да-да-да. Целый вагон окружения в котором ты чо-то должен. Илита. Илита по лекалам.
222 Mort
 
12.08.18
02:38
И эти люди рассказывают про выпуск школы квадратноголовых.
223 Mort
 
12.08.18
02:41
Бля, задача в (0) это ссылка на конкретный курс и на конкретный его параграф. Она не оставляет пространства мысли. Тупой зубреж. Я наслушался таких в акамедии, хорош.
224 Mort
 
12.08.18
02:44
Лимит по памяти важен. Далеко не все интерпретируемые языки смогут запустить интерпретатор в этих ограничениях. Выбирайте инструмент в соответствии с задачей

Охеренное условие. А Билл говорил, что хватит 640мб. Или блин важнее решить на память а не на скорость. Чо за г-но?
225 kyvv
 
12.08.18
09:30
(220, 223) Если я правильно понял, то такие задачи - типичные для вузовской подготовки. Ну, не дает мне покоя вопрос, а куда это тс поступает? Неужели в аспирантуру?
226 NSSerg
 
12.08.18
09:54
(224) там условие и по времени и по памяти. Как у любой подобной задачи.
227 NSSerg
 
12.08.18
10:01
(221) Да-да-да! Только 1Сники знают как правильно готовить программистов, и какие знания  навыки требуются гуглам-яндексам. Я бы на твоем месте предложил им свои услуги по правильному подбору персонала. Ведь тогда они и сами озолотятся, и тебя озолотят.
(223) Зубреж? Академии? Ничего что спортивные программисты выигрывают совревнования по промышленному программированию, на конкретных реальных задачах.
Ну и простой вопрос - ты на полном серьезе думаешь что олимпиадники это зубрежники? Второе название спортивного программирования - олимпиадное программирование. Олимпиады - школьные, студенческие - это соревнования именно по спортивному программированию.
228 NSSerg
 
12.08.18
10:07
(225) И для школьной.
Вот задачи всеросса ВОШ по информатике.
https://neerc.ifmo.ru/school/archive/2017-2018.html#roi
В самом низу
https://neerc.ifmo.ru/school/archive/2017-2018/ru-olymp-roi-2018-day1.pdf
https://neerc.ifmo.ru/school/archive/2017-2018/ru-olymp-roi-2018-day2.pdf
229 NSSerg
 
12.08.18
10:11
230 NSSerg
 
12.08.18
10:37
Если кому интересно, прямо сейчас начинается финал VC Cup 2018 проводимого "вконтакте"
http://codeforces.com/blog/entry/61156
онлайн трансляция
http://codeforces.com/spectator/contest/951/standings
Важный день! Сегодня мы узнаем победителей VK Cup 2018. Призовой фонд чемпионата как и в прошлом году связаны с круглыми числами в двоичной системе счисления:
•1 место — 1048576 рублей
•2 местo — 524288 рублей
•3 местo — 262144 рубля
•4-8 места — 131072 рубля

Планируем начинать в 10:40.
231 DES
 
12.08.18
12:44
(225) не я, дочка. см. личку. (в ней инфа нее менялась с момента создания).

Дочка уже поступила в МФТИ, без экзаменов.
И меня терзают смутные сомнения.
Правильно ли она сделала выбор.
232 NSSerg
 
12.08.18
13:27
(231) На прикладную математику и информатику?
А чего плохого в выборе?
233 NSSerg
 
12.08.18
13:32
Вот у меня сын отличный выбор сделал. БВИ, выбирал из ИТМО СПБГУ, СПбАУ. Выбрал третье, так как там состав студентов намного сильнее, они брали только победителей и призеров финала вош, с других олимпиад не брали.
Так в итоге факультет после этой сессии развалился!
Они полным составом, три курса бакалавриата, включая преподавателей и спонсоров (Яндекс) перешли в ВШЭ.
Утешает то, что не вуз делает студентов, а студенты, преподаватели и спонсоры делают вуз. Так что репутация ВШЭ в прикладной математике и информатики должна вырасти, и места на icpc acm улучшится.
234 DES
 
12.08.18
13:42
я не представляю девчонку которая так парит мозги, ну или она очень слишком более лучше крутая.
235 NSSerg
 
12.08.18
13:54
(234) его год, прошлый год выпуска, одна из самых крутых в России - девушка.
236 NSSerg
 
12.08.18
13:59
Дроздова Алнксандра. Чемпион России (чистое первое место), серебрянный медалист чемпионата мира среди школьников.
237 NSSerg
 
12.08.18
14:01
Виноват, третье место в фиеале всеросса вош
http://roi2017.snarknews.info/index.cgi?data=roi/base/012487&head=index&menu=index&class=roi2017&year=2017&contest=roi
238 2mugik
 
14.08.18
12:08
ВШЭ - высшая школа экономики?
239 NSSerg
 
14.08.18
13:17
(238) Да. ВШЭ далеко не на последнем месте по рейтингам по ПМиИТ, и нормально выступает на ACM ICPC, но чемпионом мира ни разу не была. Ну и такого факультета в Питере не было, они в этом году будут числиться в Москве, а учиться в Питере. И есть вероятность что из-за этого в этом году в чемпионате мира участвовать не удастся.
Но по большому счету главное все-таки программа обучения и преподаватели, а они остались прежними.
Ну и есть разница получить диплом ИТМО или СПбГУ,  которые многократные чемпионы мира по программированию, или ВШЭ.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший