Нужно решить с кругов Эллера
Пример: На вступительном экзамене по математике были предложены три задачи: по алгебре, планиметрии и стереометрии. Из 1000 абитуриентов задачу по алгебре решили 800, по планиметрии — 700, а по стереометрии — 600 абитуриентов. При этом задачи по алгебре и планиметрии решили 600 абитуриентов, по алгебре и стереометрии — 500, по планиметрии и стереометрии — 400. Все три задачи решили 300 абитуриентов. Существуют ли абитуриенты, не решившие ни одной задачи, и если да, то сколько их?
#include <iostream>
#include <cmath>
using namespace std;
double Otr(double Ax, double Bx, double Ay, double By) {
return sqrt((Bx - Ax)*(Bx - Ax) + (By - Ay)*(By - Ay));
}
int main() {
double Ax, Ay, Bx, By, Cx, Cy, Dx, Dy;
cin >> Ax >> Ay >> Bx >> By >> Cx >> Cy >> Dx >> Dy;
cout << "|AB|=" << Otr(Ax, Bx, Ay, By) << endl;
cout << "|AC|=" << Otr(Ax, Cx, Ay, Cy) << endl;
cout << "|AD|=" << Otr(Ax, Dx, Ay, Dy) << endl;
return 0;
}
Составим таблицу, и заполним её ячейки плюсами и минусами (запись "-2" обозначает "ставим минус в ячейку 2"):
1} С не знает перc: -2
2} для М родной тур: +8
3} Ю не знает по-тур ни слова: -16
4} М нужен переводчик, чтоб говорить с Ю, значит Ю не знает тур: -12
5} никого, кто владел бы одновременно и арм, и тур -> М не знает арм: -5
6} А говорит по-перс: +10
7} C переводчик между М и А, но А говорит по перс, значит М не знает перс: -6
8} второй язык М - греческий: +7
9} М и А нуждаются в переводчике, значит А не знает гре: -11
10} второй язык А - арм: +9
11} С переводил для А, значит он знает арм: +1
12} нет общего языка для С А Ю, значит Ю не знат арм: -13
13} Ю знает два языка - перс и гре: +14 +15
14} нет общего языка для С А Ю, значит С не знает гре: -3
15} второй язык С - тур: +4
Салал - армянский и турецкий
Мохаммед - греческий и турецкий
Абдулла - армянский и персидский
Юсуф - персидский и греческий