Список вопросов
Страна замов. Напишите программу на Python
10th December, 18:14
410
0
На листе клетчатой бумаги рисуют выпуклый 100-угольник с вершинами в узлах сетки. Какое наибольшее число диагоналей этого 100-угольника может идти по линиям сетки?
7th November, 15:29
266
0
Рассмотрим все прямоугольники, длины сторон которых выражены целым числом метров, и периметр которых (в метрах) численно равняется площади (в метрах квадратных). Найдите суммарную площадь всех таких, разных по размеру сторон, прямоугольников.Прямоугольники, отличающиеся порядком сторон, например, 10 * 20 и 20 * 10 считаем одинаковыми.
7th October, 20:57
732
0
Кто и за сколько может написать программу управления курсором?
2nd October, 23:48
500
3
Как авторизоваться на novafilm.tv при помощи cURL?
2nd October, 23:33
381
3
Верстка, position:relative создает пустое место
2nd October, 23:31
324
2
Что улучшить в переводе Apache Public License?
2nd October, 23:29
327
1
Формирование кода видео Вконтакте
2nd October, 23:23
400
3
IPad2 с 3G из Штатов?
2nd October, 23:18
373
5
А будет ли tcpdump видеть ack flood?
2nd October, 23:14
289
2
Альфа банк и странное смс мошенничество?
2nd October, 23:05
665
6
Софт для "ремонта" поврежденного h264 видео?
2nd October, 22:55
301
3
Scrapy — Python
2nd October, 22:54
312
4
Помощь с доставкой из США?
2nd October, 22:47
339
3
Создание stop-motion ролика
2nd October, 22:41
374
5
Верстка ul/li в несколько колонок?
2nd October, 22:41
274
13
Существует ли поисковик, отсортированный по дате?
2nd October, 22:32
309
3
Вопрос к пользователям HTC HD7?
2nd October, 22:32
329
2
Как получить путь к аватару пользователя когда он авторизируется на сайте через openid google?
2nd October, 22:20
345
2
Что случилось с Кенгуру.ТВ?
2nd October, 22:19
380
3
Решение задачи Круговая площадь с Меньшиков
Без пояснения   Просмотров: 80
Два круга заданы координатами центров в прямоугольной декартовой системе координат и радиусами. Найти площадь их пересечения.
Ограничения: во входных данных числа вещественные и по модулю не превосходят 1000.
Ограничения: во входных данных числа вещественные и по модулю не превосходят 1000.
Код
#include #include #include using namespace std; int n; const double pi = 2*acos(0.0); struct point { double x,y; }; struct circle { point c; double r; void input() { cin>>c.x>>c.y>>r; } }c1,c2; double dist (const point &p1, const point &p2) { return sqrt((p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y)); } double area_cross_circle(const circle &c1, const circle &c2) { // первый всегда больше if (c1.r < c2.r) return area_cross_circle(c2,c1); double d = dist(c1.c, c2.c); // частные случаи if ( d > c1.r + c2.r) return 0; if ( d + c2.r <= c1.r) return pi*c2.r*c2.r; // имеет место пересечение double alpha = 2 * acos(( d * d + c1.r * c1.r - c2.r * c2.r)/(2 * d * c1.r)); double beta = 2 * acos(( d * d + c2.r * c2.r - c1.r * c1.r)/(2 * d * c2.r)); double S1 = c1.r * c1.r * (alpha - sin(alpha)) / 2; double S2 = c2.r * c2.r * (beta - sin(beta)) / 2; return S1 + S2; } int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); c1.input(); c2.input(); double S = area_cross_circle(c1,c2); printf("%0.2f", S); return 0; }
 
 
 
 
 
Автор: Администратор
