Pascalabc 30
дана цепочка, состоящая из синих (b) и красных (r) точек. нужно удалить наименьшее количество синих точек так, чтобы сначала шли только синие, а потом – только красные.
входные данные
входная строка содержит только символы 'b' и 'r' без пробелов.
выходные данные
нужно вывести полученную цепочку, в которой сначала идут только синие точки, а потом – только красные. во второй строке нужно вывести количество удалённых синих точек.
примеры
входные данные
bbbrbrbrr
выходные данные
bbb
2
using System;
class Program
{
static void Main()
{
int x1 = 2, y1 = 1;
int x2 = 6, y2 = 5;
int x3 = 10, y3 = 1;
var a = Distance(x2, y2, x3, y3);
var b = Distance(x1, y1, x3, y3);
var c = Distance(x2, y2, x1, y1);
Console.WriteLine("S = {0}", Square(a, b, c));
Console.ReadKey();
}
//растояние между точками
static double Distance(int x1, int y1, int x2, int y2)
{
return Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
//формула герона
static double Square(double a, double b, double c)
{
var p = (a + b + c) / 2;
return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
}
// теорема косинусов
static double Angle(double a, double b, double c)
{
return Math.Acos((b * b + c * c - a * a) / (2 * b * c));
}
static bool IsAcuteAngel(double alpha)
{
return alpha < Math.PI / 2;
}
}
(A & B) & (C v D) = 0 (ложь)
Объяснение:
А = {Принтер — устройство ввода информации} = 0 (ложь, т.к. принтер — устройство вывода информации)
В = {Процессор — устройство обработки информации} = 1 (истина, т.к. процессор — устройство обработки информации)
С = {Монитор — устройство хранения информации} = 0 (ложь, т.к. монитор — устройство вывода информации)
D = {Клавиатура — устройство ввода информации} = 1 (истина, т.к. клавиатура — устройство ввода информации)
(A & B) & (C v D) = (0 & 1) & (0 v 1) = 0 & 1 = 0 (ложь)
И (&) - истинно, когда оба исходных высказывания истинны
ИЛИ (∨) - ложно, когда оба исходных высказывания ложны
Здесь в первую очередь выполнили действия в скобках