Задача C. Круги на экране

Автор:ACM ICPC 2009-2010, NEERC, Northern Subregional Contest   Ограничение времени:3 сек
Входной файл:circles.in   Ограничение памяти:256 Мб
Выходной файл:circles.out  

Условие

Вчера Андрей написал программу, которая рисует n белых кругов на черном экране. Экран монохромный и его разрешение — w × h пикселей. Пиксели нумеруются от верхнего левого угла (0, 0) к правому нижнему (w1, h1).

Круг с центром в пикселе (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
5 3 2
1 1 1
3 1 1
6
2
12 9 2
3 3 2
7 5 4
51

0.030s 0.006s 17