Автор: | ACM ICPC 2009-2010, NEERC, Northern Subregional Contest | Ограничение времени: | 3 сек | |
Входной файл: | circles.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | circles.out |
Вчера Андрей написал программу, которая рисует n белых кругов на черном экране. Экран монохромный и его разрешение — w × h пикселей. Пиксели нумеруются от верхнего левого угла (0, 0) к правому нижнему (w−1, h−1).
Круг с центром в пикселе (xc, yc) и радиусом r состоит из пикселей с координатами (x, y) такими, что √(xc − x)2 + (yc − y)2 ≤ r. Если круг не влазит в экран, он обрезается. Если пиксель принадлежит двум и более кругам, он белый.
Картинка получилась очень красивая, поэтому Андрей решил скопировать ее н стену. У него белые обои, поэтому он может только раскрасить часть стены черным. Теперь он хочет знать, сколько ему потребуется краски. Он копирует картинку точно пиксель в пиксель, поэтому вам надо написать программу, которая вычисляет число черных пикселей, оставшихся на экране после рисования n кругов.
В первой строке входного файла содержится три целых числа: w, h, и n (1 ≤ w, h ≤ 20000; 1 ≤ n ≤ 100). Каждая из последующих n строк содержит описания кругов. В i+1-ой строке находится три целых числа: xi, yi, ri (0 ≤ xi < w; 0 ≤ yi < h; 0 ≤ ri ≤ 40 000). Они обозначают круг с центром в пикселе (xi, yi) и радиусом ri.
Замечание: картинка соответствует второму примеру.
Вам нужно вывести ровно одно число — количество черных пикселей, оставшихся на экране.
№ | Входной файл (circles.in ) |
Выходной файл (circles.out ) |
---|---|---|
1 |
|
|
2 |
|
|