Форум программистов, компьютерный форум CyberForum.ru

Разобраться в задаче с Codeforce - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Список битых полей http://www.cyberforum.ru/cpp-beginners/thread639254.html
что это такое? Хотелось бы увидеть пример кода
C++ Загрузчик С++ Приветствую! Никак не получется собрать загрузчик, при построении в MS Visual C++ 6.0 выдает ошибки: Deleting intermediate files and output files for project 'B0_loader - Win32 Debug'. --------------------Configuration: B0_loader - Win32 Debug-------------------- Compiling... B0_loader.cpp d:\b0_loader\b0_loader.cpp(18) : warning C4305: 'initializing' : truncation from 'const int' to... http://www.cyberforum.ru/cpp-beginners/thread639250.html
Бот на С++ C++
Всем привет, нужен исходник бота на С++, который ходил бы по нескольким ссылкам через определённое время. Ссылки и время должны задаваться пользователем. И бот должен зайти на сайт под своим логином и паролем. Заранее спасибо.
Вывод и ввод русских слов C++
Мне необходимо вводить слова на русском и чтобы,в дальнейшем,я мог их сравнивать с другими словами и выполнять ещё какие-то операции.В программе я пока что разбиваю фразу на слова,разделённые пробелом и вывожу их. Когда я использовал setlocale(0,""),то введённые фразы на русском языке при выводе отображались кракозяброй,если использовал нынешний вариант,то слова выводятся на русском,но при...
C++ Окно в borland 5.02 http://www.cyberforum.ru/cpp-beginners/thread639191.html
Нужно срочно окно написанное в borland 5.02. Пожалуйста помогите.
C++ Удаление последенего символа У меня есть строковая переменная. Как мне удалить из нее самый последний символ? подробнее

Показать сообщение отдельно
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
18.08.2012, 11:36     Разобраться в задаче с Codeforce
Вот условие(Задача 203B):
В один не самый прекрасный вечер Валере было очень скучно. Чтобы немного себя развлечь, Валера нашел следующее занятие.Он взял белый квадратный клетчатый лист бумаги, состоящий из n × n клеток. После этого он стал закрашивать белые клетки листа одну за другой в черный цвет. Всего он закрасил m различных клеток этого листа. Поскольку у Валеры была какая-то предрасположенность ко всему квадратному, его заинтересовал следующий вопрос — после какого хода впервые на листке можно найти черный квадрат со стороной 3. Однако Валера не знает ответ на этот вопрос и поэтому просит Вашей помощи.
От Вас требуется найти минимальный номер хода, после которого на клетчатом листке образовался хотя бы один квадрат черного цвета со стороной 3 или определить, что такого хода нет.
Входные данные
В первой строке задано два целых числа n и m (1 ≤ n ≤ 1000, 1 ≤ m ≤ min(n· n, 105)) — размер клетчатого листа и количество ходов соответственно.
Далее в m строках задано описание ходов. В i-ой строке находятся два числа xi, yi (1 ≤ xi, yi ≤ n) — номер строки и номер столбца, в котором находится клетка, закрашиваемая на i-ом ходе.
Все числа в строках разделены единичными пробелами. Гарантируется, что все ходы различны. Ходы нумеруются, начиная с 1, в том порядке, в котором они заданы во входных данных. Столбцы клетчатого листа бумаги нумеруются, начиная с 1, слева направо. Строки клетчатого листа бумаги нумеруются, начиная с 1, сверху вниз.
Выходные данные
В единственной строке выведите ответ на задачу — минимальный номер хода, после которого на листе образуется черный квадрат со стороной 3. Если такого хода не существует, выведите -1.
И вот верное решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<conio.h>
using namespace std;
int n,m,x,y,a[1005][1005]={0},i,l,r;
int main()
{   cin>>n>>m;
    for(i=1;i<=m;i++)
    {   cin>>x>>y;
        for(l=x;l<x+3;l++)
        {   for(r=y;r<y+3;r++)
            {   a[l][r]++;
                if(a[l][r]==9)
                {   cout<<i;
                    getch();
                    return 0;
                }
            }
        }
    }
cout<<-1;
getch();
return 0;
}
Самому задачу решить не получилось, но и логика данного кода мне не очень понятна(т.е. почему такие действия дают верный ответ). Буду очень благодарен, если кто-нибудь пояснит приведённое решение.Точнее подход к решению, т.к. сам по себе код и действия, выполняемые программой, мне понятны.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru