#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
const int maxAccuracy = 15;
int main() {
double circumference, circleArea;
int givenAccuracy, possibleAccuracy;// заданная пользователем и максимально возможная в данном случае точность соответственно
cin >> circumference >> givenAccuracy;
if (circumference == 0)
cout << "Невозможно выполнить для вырожденной окружности";// выведение уведомления, если задана вырожденная окружность
else if (circumference < 0 || givenAccuracy < 0){
cout << "Ошибка ввода данных";// проверка введенных данных
} else {
circleArea = circumference * (circumference / (4 * M_PI));
possibleAccuracy = maxAccuracy - ceil(log10(circleArea));
if (possibleAccuracy < 0)
cout << "Число содержит больше 15 значащих цифр. Точный вывод невозможен";// предупреждение если число превышает 10^15
else if (possibleAccuracy < givenAccuracy)
cout << "Вывод с заданной точностью невозможен. Максимально возможная точность " << possibleAccuracy;
else
cout << fixed << setprecision(givenAccuracy) << circleArea;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4gCiNpbmNsdWRlIDxtYXRoLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4QWNjdXJhY3kgPSAxNTsKCmludCBtYWluKCkgewoJZG91YmxlIGNpcmN1bWZlcmVuY2UsIGNpcmNsZUFyZWE7CglpbnQgZ2l2ZW5BY2N1cmFjeSwgcG9zc2libGVBY2N1cmFjeTsvLyDQt9Cw0LTQsNC90L3QsNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC8INC4INC80LDQutGB0LjQvNCw0LvRjNC90L4g0LLQvtC30LzQvtC20L3QsNGPINCyINC00LDQvdC90L7QvCDRgdC70YPRh9Cw0LUg0YLQvtGH0L3QvtGB0YLRjCDRgdC+0L7RgtCy0LXRgtGB0YLQstC10L3QvdC+CgljaW4gPj4gY2lyY3VtZmVyZW5jZSA+PiBnaXZlbkFjY3VyYWN5OwoJaWYgKGNpcmN1bWZlcmVuY2UgPT0gMCkKCSAgICBjb3V0IDw8ICLQndC10LLQvtC30LzQvtC20L3QviDQstGL0L/QvtC70L3QuNGC0Ywg0LTQu9GPINCy0YvRgNC+0LbQtNC10L3QvdC+0Lkg0L7QutGA0YPQttC90L7RgdGC0LgiOy8vINCy0YvQstC10LTQtdC90LjQtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPLCDQtdGB0LvQuCDQt9Cw0LTQsNC90LAg0LLRi9GA0L7QttC00LXQvdC90LDRjyDQvtC60YDRg9C20L3QvtGB0YLRjAoJZWxzZSBpZiAoY2lyY3VtZmVyZW5jZSA8IDAgfHwgZ2l2ZW5BY2N1cmFjeSA8IDApewoJCSAgICAgY291dCA8PCAi0J7RiNC40LHQutCwINCy0LLQvtC00LAg0LTQsNC90L3Ri9GFIjsvLyDQv9GA0L7QstC10YDQutCwINCy0LLQtdC00LXQvdC90YvRhSDQtNCw0L3QvdGL0YUKCX0gZWxzZSB7CgkJY2lyY2xlQXJlYSA9IGNpcmN1bWZlcmVuY2UgKiAoY2lyY3VtZmVyZW5jZSAvICg0ICogTV9QSSkpOwoJCXBvc3NpYmxlQWNjdXJhY3kgPSBtYXhBY2N1cmFjeSAtIGNlaWwobG9nMTAoY2lyY2xlQXJlYSkpOwoJCWlmIChwb3NzaWJsZUFjY3VyYWN5IDwgMCkgCgkJICAgIGNvdXQgPDwgItCn0LjRgdC70L4g0YHQvtC00LXRgNC20LjRgiDQsdC+0LvRjNGI0LUgMTUg0LfQvdCw0YfQsNGJ0LjRhSDRhtC40YTRgC4g0KLQvtGH0L3Ri9C5INCy0YvQstC+0LQg0L3QtdCy0L7Qt9C80L7QttC10L0iOy8vINC/0YDQtdC00YPQv9GA0LXQttC00LXQvdC40LUg0LXRgdC70Lgg0YfQuNGB0LvQviDQv9GA0LXQstGL0YjQsNC10YIgMTBeMTUKCQllbHNlIGlmIChwb3NzaWJsZUFjY3VyYWN5IDwgZ2l2ZW5BY2N1cmFjeSkKCQkgICAgCSBjb3V0IDw8ICLQktGL0LLQvtC0INGBINC30LDQtNCw0L3QvdC+0Lkg0YLQvtGH0L3QvtGB0YLRjNGOINC90LXQstC+0LfQvNC+0LbQtdC9LiDQnNCw0LrRgdC40LzQsNC70YzQvdC+INCy0L7Qt9C80L7QttC90LDRjyDRgtC+0YfQvdC+0YHRgtGMICIgPDwgcG9zc2libGVBY2N1cmFjeTsKCSAgICBlbHNlCgkJICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbihnaXZlbkFjY3VyYWN5KSA8PCBjaXJjbGVBcmVhOwoJfQoJcmV0dXJuIDA7Cn0=