Шаблоном размера п назовем строку длины п. каждый из символов которой входит в множество
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c,d,e, f, 9, ?
Шаблоны преобразуются в строки из цифр по следующим правилам:
1. символы от 0 до 9 могут быть преобразованы только сами в себя;
2. Символ а может преобразован в любой из символов 0,1, 2, 3;
3. Символ б может преобразован в любой из символов 1,2,3,4;
4. символ с может преобразован в любой из символов 2,3,4,5;
5. символ d может преобразован в любой из символов 3,4,5,6;
6. символ е может преобразован в любой из символов 4,5,6,7;
7. Символ fможет преобразован в любой из символов 5,6,7,8;
8. Символ g может преобразован в любой из символов 6,7,8,9;
9. символ ? может преобразован в любой из символов от 0 до 9;
Даны два шаблона: Pi и ру. Рассмотрим множество S1 строк, которые могут быть получены из
Рі по описанным правилам, и множество S2 строк, которые могут быть получены из ру.
Необходимо найти количество строк, входящих в оба этих множества.
На питоне
#include <sstream>
#include <vector>
#include <string>
using namespace std;
int main(int argc, char** argv) {
cout << "string: ";
string s; getline(cin, s);
istringstream ss(s);
vector<string> v;
while (ss >> s) v.push_back(s);
int j=v[0].size(),k=0;
for (int i=1; i<v.size(); i++)
if (v[i].size()>j) { j=v[i].size(); k=i; }
cout<<"long word: "<<v[k]<<endl<<endl;
system("pause");
return 0;
}
Пилот = n1 + n4 + n6 + n7 = 700
Пилот | Вертолёт | Акула = n1 + n2 + n3 + n4 + n5 + n6 + n7 = 1200
Пилот & Вертолёт & Акула = n7 = 0
Пилот & Акула = n4 + n7 = 110
Пилот & Вертолёт = n6 + n7 = 220
Вертолёт & Акула = n5 + n7 = 330
Найти : n2 + n3 + n4 + n5 + n6
Т.к n7 = 0, то n4=110
n5 = 330
n6 = 220
Тогда из первого выражения находим, что :
n1 + n4 + n6 + n7 = 700
n1 + 110 + 220 + 0 = 700
n1 = 370
Из второго выражения получаем итоговый ответ:
n1 + n2 + n3 + n4 + n5 + n6 + n7 = 1200
n2 + n3 + n4 + n5 + n6 = 1200 - n1 - n7 = 1200 - 370 = 830
ответ: 830