It seems that the search feature (in the top right corner) only works for handles but fails to find blogs etc. I think it was like this for at least a week now.
It would be nice to see it fixed. Or is it broken only for me?

| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | jiangly | 3670 |
| 3 | Kevin114514 | 3657 |
| 4 | maroonrk | 3355 |
| 5 | Um_nik | 3353 |
| 6 | squareOf105 | 3346 |
| 7 | tourist | 3343 |
| 8 | strapple | 3324 |
| 9 | heuristica | 3322 |
| 10 | jiangbowen | 3291 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 158 |
| 2 | nik_exists | 150 |
| 2 | maspy | 150 |
| 4 | AmShZ | 143 |
| 5 | Um_nik | 141 |
| 6 | Errichto | 139 |
| 7 | adamant | 137 |
| 8 | BledDest | 133 |
| 8 | maroonrk | 133 |
| 10 | qwexd | 130 |
It seems that the search feature (in the top right corner) only works for handles but fails to find blogs etc. I think it was like this for at least a week now.
It would be nice to see it fixed. Or is it broken only for me?

Иногда встречаются задачи с дву/многомерными массивами, в которых есть несколько очевидных случаев возможного выхода за пределы массива. Они просты и понятны, но для их обработки порой требуется много "лишнего" кода (однажды автор написал 16 if-ов!). Я придумал простой способ, который поможет избежать этого. Возможно, это покажется вам очевидным, но лично мне так не казалось еще вчера. Думаю, я не один такой.
Пример задачи (как можно более простой, взята отсюда http://informatics.mccme.ru/mod/statements/view3.php?chapterid=946 ):
Дана прямоугольная доска N × N (N <= 20). Конь стоит в верхнем левом углу доски. Выведите количество способов добраться конём до правого нижнего угла доски, если конь может ходить только так:

Вот обычное решение этой задачи динамическим программированием:
#include <iostream>
int n, dp[20][20];
int main() {
std::cin >> n;
dp[0][0] = 1;
for (int i = 1; i < n; i++) {
for (int j = 1; j < n; j++) {
if (i-2 >= 0 && j-1 >= 0)
dp[i][j] += dp[i-2][j-1];
if (i-1 >= 0 && j-2 >= 0)
dp[i][j] += dp[i-1][j-2];
}
}
std::cout << dp[n-1][n-1] << '\n';
}
Казалось бы, ничего сложного. Но тем не менее его можно упростить:
#include <iostream>
int n, dp[20][20];
int f(int i, int j) {
return (i < 0 || j < 0) ? 0 : dp[i][j];
}
int main() {
std::cin >> n;
dp[0][0] = 1;
for (int i = 1; i < n; i++)
for (int j = 1; j < n; j++)
dp[i][j] = f(i-2, j-1) + f(i-1, j-2);
std::cout << dp[n-1][n-1] << '\n';
}
В данном примере не видно большой разницы, но в некоторых случаях это может действительно сократить код, тем самым уменшив возможность ошибки. Это способ хорош еще тем, что если вдруг надо будет возвращать не 0 в случае выхода за пределы, а, например -inf, то это легко сделать.
Кстати, функцию f можно сделать более гибкой, передав ей массив/вектор в качестве аргумента, например: int f(vector<int>& v, int i, int j) {, а можно даже использовать C++14 и написать так: int f(auto& v, int i, int j) {.
Всем привет! Я хотел бы поучаствовать в Московской командной олимпиаде школьников по программированию, но так вышло, что я не знаю никого, кто мог бы выступить со мной в команде. Возможно, найдутся такие люди, которые тоже хотели бы поучаствовать, но, как и я, не имеют команды. О себе: мне 17 лет, учусь в 11 классе. Спортивным программированием занимаюсь относительно недавно, но относительно успешно. Теорию знаю неплохо, но опыта написания мало (разве что кроме графов). Пишу на C++, также знаю Python. Закончил параллель B в ЛКЛ (аналог ЛКШ). В командной олимпиаде участвовал лишь раз (в ЛКЛ), но команда заняла 1 место :3 . Участвовать хочу в А, конечно же. Олимпиада будет проходить 19.10, регистрация кончается 13.10.
UPD: не актуально.
Look at this: http://codeforces.me/submissions/Hossam.Ali . He's sending like 5 solutions every minute. I think he's using codeforces API. Probably authors of API forgot to set query limit.
| Название |
|---|


