Считаем, что в нашей реализации языка Pascal нет готовой функции для арксинуса и опишем арксинус на основе известного тригонометрического соотношения: Тогда Область допустимых значений: |c|<1, a≠0
function arcsin(x: real): real; begin arcsin := arctan(x / sqrt(1 - sqr(x))) end;
var a, b, c, x: real;
begin Write('Введите через пробел значения a,b,c: '); Readln(a, b, c); if (c >= 1) then Writeln('Решения нет, c>=1') else if a = 0 then Writeln('Решения нет, a=0)') else Writeln('x=', arcsin(c) / sqrt(1 - sqr(x)):0:5) end.
Тестовое решение:
Введите через пробел значения a,b,c: 3.25 -1.7 0.146 x=0.14652
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int s, n;
cin >> s >> n;
vector <int> a(n);
for(int i = 0; i < n; i++)
cin >> a[i];
sort(a.begin(), a.end());
int prev_s = 0, count = 0;
for(int i = 0; i < n; i++)
if(a[i] >= s)
{
prev_s = a[i];
count++;
for(int j = i; j < n; j++)
if(a[j] - prev_s >= 3)
{
count++;
prev_s = a[j];
}
break;
}
cout << count;
return 0;
}