Имеется код. Выберите верные утверждения.
public void run() {
synchronized (monitor) {
if (amount - pay > 0)
amount -= pay;
monitor.notifyAll();
monitor.wait(10);
}
}
Выберите один или несколько ответов:
Для обработки исключения можно заключить вызов функции wait в блок try-catch
В этом коде присутствует блок проверки.
В блоке try-catch блок catch не cможет поймать исключение, если он настроен на тип исключения Exception
В этом коде требуется обработать исключение.
Во время выполнения этого кода может быть создан объект типа InterruptedException.
Для предотвращения возникновения исключительной ситуации можно перед объявлением функции run добавить модификатор throw
#include <iostream>
#include <string>
#include <conio.h>
#define ESC 27
using namespace std;
int main() {
char ch;
int sum = 0;
do {
ch = _getch();
if (ch == ESC) {
cout << "Output of the program:\n" << sum;
putchar('\n');
} else {
cout << ch;
sum += (int)ch;
putchar('\n');
}
} while (ch != ESC);
system("pause");
return 0;
}
Объяснение:
#include <iostream>
typedef long long ll;
using namespace std;
bool ll_is_valid(ll t, ll N, ll x, ll y)
{
return t / x + (t - x) / y >= N;
}
ll f(ll N, ll x, ll y)
{
ll R = 1;
while (!ll_is_valid(R,N,x,y)) R *= 2;
ll L = R / 2;
while(R - L > 1)
{
ll M = (L + R) / 2;
if (!ll_is_valid(M,N,x,y)) {L = M;}
else {R = M;}
}
return R;
}
int main()
{
ll N,x,y;
cin >> N >> x >> y;
if(x > y) swap( x, y );
cout << f(N, x, y) << std::endl;
}