'use strict';
/**
 * ЦТ 2015 Математика — Вариант 1 (30 заданий: A1-A18 + B1-B12)
 * Источник: ЦТ 2015.pdf, страница ответов 29
 */
const db = require('../src/db/db');
const MATH_ID = 3;
const T = {arithmetic:16,word:17,numbers:18,trig:19,quadratic:20,progression:21,inequalities:22,geometry:23,functions:24,log:25,expineq:26,equations:27,stats:28};
function getTopic(n){const e=db.prepare('SELECT id FROM topics WHERE subject_id=? AND LOWER(name)=LOWER(?)').get(MATH_ID,n);if(e)return e.id;return Number(db.prepare('INSERT INTO topics (subject_id,name) VALUES (?,?)').run(MATH_ID,n).lastInsertRowid);}
const Tx={stereo:getTopic('Стереометрия'),circle:getTopic('Окружность и круг'),sets:getTopic('Числовые промежутки'),};
const ex=new Set(db.prepare('SELECT text FROM questions WHERE subject_id=3').all().map(q=>q.text.slice(0,80).trim()));
let added=0,skipped=0;
const insQ=db.prepare(`INSERT INTO questions (subject_id,topic_id,text,type,difficulty,year,explanation,correct_text,image,source_type) VALUES (?,?,?,?,?,?,?,?,?,?)`);
const insO=db.prepare(`INSERT INTO options (question_id,text,is_correct,order_index) VALUES (?,?,?,?)`);
function q(tid,text,opts,diff,year,img){
  const key=text.slice(0,80).trim();if(ex.has(key)){skipped++;return;}ex.add(key);
  const r=insQ.run(MATH_ID,tid,text,'single',diff,year||null,null,null,img||null,'ЦТ');
  const id=r.lastInsertRowid;opts.forEach((o,i)=>insO.run(id,o.t,o.c?1:0,i));added++;
}
function fb(tid,text,ans,diff,year){
  const a=String(ans);
  const key=text.slice(0,80).trim();if(ex.has(key)){skipped++;return;}ex.add(key);
  insQ.run(MATH_ID,tid,text,'fill-blank',diff,year||null,null,a,null,'ЦТ');
  added++;
}

const run=db.transaction(()=>{

// ══ ЧАСТЬ A ══════════════════════════════════════════════════

// A1 — числовая прямая O,A,B,C,D,F; коорд. A=9/7, какой точке соответствует число 1? [РИСУНОК; ответ: 1 — C]
q(Tx.sets,`A1. На координатной прямой отмечены точки \\(O,A,B,C,D,F\\). Если координата точки \\(A\\) равна \\(\\dfrac{9}{7}\\), то числу 1 на координатной прямой соответствует точка:\n1) \\(C\\); 2) \\(B\\); 3) \\(D\\); 4) \\(F\\); 5) \\(O\\).`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015,'/img/ct/math/2015_v1_a1.png');

// A2 — Записать (11^y)^x как степень с основанием 11 (ответ: 4)
q(T.numbers,`Запишите \\((11^y)^x\\) в виде степени с основанием 11:\n1) \\(11^y\\); 2) \\(11^{x+y}\\); 3) \\(11^{x^y}\\); 4) \\(11^{xy}\\); 5) \\(11^{x^2}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2015);

// A3 — разность АП aₙ=5n-2 равна 5 (ответ: 3)
q(T.progression,`Арифметическая прогрессия \\((a_n)\\) задана формулой n-го члена \\(a_n=5n-2\\). Найдите разность этой прогрессии:\n1) 3; 2) \\(-7\\); 3) 5; 4) 7; 5) \\(-5\\).`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015);

// A4 — фигуры симметричные относительно точки O [РИСУНОК; ответ: 2]
q(T.geometry,`A4. Укажите номер рисунка, на котором изображены фигуры, симметричные относительно точки \\(O\\):\n1) 1; 2) 2; 3) 3; 4) 4; 5) 5.`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015,'/img/ct/math/2015_v1_a4.png');

// A5 — вычислить 3732·0,01-5/(0,47+1,13) (ответ: 2)
q(T.numbers,`Вычислите \\(\\dfrac{3732\\cdot0{,}01-5}{0{,}47+1{,}13}\\):\n1) \\(2{,}2\\); 2) \\(2{,}02\\); 3) 202; 4) 22; 5) 20.`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015);

// A6 — множество решений системы {x≤-1,6; 1-2x<9} на рисунке [РИСУНОК; ответ: 2]
q(T.inequalities,`A6. Укажите номер рисунка, на котором показано множество решений системы неравенств \\(\\begin{cases}x\\leq-1{,}6\\\\1-2x<9\\end{cases}\\):\n1) 1; 2) 2; 3) 3; 4) 4; 5) 5.`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015,'/img/ct/math/2015_v1_a6.png');

// A7 — угол ABC при дугах AB:BC:CA=5:7:6 → 60° (ответ: 3)
q(Tx.circle,`Точки \\(A,B,C\\) разделили окружность так, что градусные меры дуг \\(AB\\), \\(BC\\) и \\(CA\\) находятся в отношении \\(5:7:6\\). Найдите градусную меру угла \\(ABC\\):\n1) 50°; 2) 60°; 3) 60°; 4) 100°; 5) 120°.`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015);

// A8 — число НЕ записанное в стандартном виде (ответ: 4)
q(T.numbers,`Данные числа: 5100; 0,0051; \\(5{,}1\\cdot10^{-4}\\); \\(0{,}51\\cdot10^2\\); \\(5{,}1\\cdot10^{-2}\\). Укажите число, записанное в НЕСТАНДАРТНОМ виде:\n1) 5100; 2) 0,0051; 3) \\(5{,}1\\cdot10^{-4}\\); 4) \\(0{,}51\\cdot10^2\\); 5) \\(5{,}1\\cdot10^{-2}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2015);

// A9 — упростить (a²+5a)/(a+3) - 6a/(a²+3a) (ответ: 1)
q(T.equations,`Результат упрощения выражения \\(\\dfrac{a^2+5a}{a+3}-\\dfrac{6a}{a^2+3a}\\) имеет вид:\n1) \\(a-2\\); 2) \\(\\dfrac{(a-2)(a-3)}{a+3}\\); 3) \\(\\dfrac{a^2+11a}{a^2+4a+3}\\); 4) \\(\\dfrac{a^2+8a-33}{3(a+3)}\\); 5) \\(a+2\\).`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015);

// A10 — значение ∛(1/32·∛33) (ответ: 4)
q(T.numbers,`Значение выражения \\(\\sqrt[3]{\\dfrac{1}{32}\\cdot\\sqrt[3]{33}}\\) равно:\n1) \\(\\dfrac{3}{2\\sqrt[3]{3^3}}\\); 2) \\(\\dfrac{1}{2}\\); 3) 2; 4) \\(\\dfrac{2}{\\sqrt[3]{33}}\\); 5) \\(\\dfrac{1}{33}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
2,2015);

// A11 — гистограмма: в какой день <30% всех покупателей пришло по акции? [РИСУНОК; ответ: 1 — понедельник]
q(T.stats,`A11. На диаграмме показано количество покупателей в период проведения акции в магазине. В какой день количество покупателей товара по акции составило менее 30% от количества всех покупателей в этот день?\n1) Понедельник; 2) вторник; 3) среда; 4) четверг; 5) пятница.`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015,'/img/ct/math/2015_v1_a11.png');

// A12 — эскиз графика y=1-(x+3)² [РИСУНОК; ответ: 3]
q(T.functions,`A12. Укажите номер рисунка, на котором изображён эскиз графика функции \\(y=1-(x+3)^2\\):\n1) 1; 2) 2; 3) 3; 4) 4; 5) 5.`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015,'/img/ct/math/2015_v1_a12.png');

// A13 — (4x-9)/5 + 2 = x - 11/5 равносильно уравнению (ответ: 2)
q(T.equations,`Уравнение \\(\\dfrac{4x-9}{5}+2=x-\\dfrac{11}{5}\\) равносильно уравнению:\n1) \\(6^x=1\\); 2) \\(6^x=6\\); 3) \\(2^x=32\\); 4) \\(2^x=64\\); 5) \\(5^x=25\\).`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2015);

// A14 — скорость катера в 9 раз больше течения реки, формула (ответ: 1)
q(T.word,`Собственная скорость катера в 9 раз больше скорости течения реки. Расстояние по реке из пункта \\(A\\) в пункт \\(B\\) плот проплыл за время \\(t_1\\), а катер — за время \\(t_2\\). Тогда верна формула:\n1) \\(t_1=9t_2\\); 2) \\(t_1=9t_2\\); 3) \\(t_1=9{,}5t_2\\); 4) \\(t_1=10{,}5t_2\\); 5) \\(t_1=11t_2\\).`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2015);

// A15 — тупоугольный треугольник ABC с вершинами в узлах сетки [РИСУНОК; ответ: 4]
q(T.geometry,`A15. На координатной плоскости изображён тупоугольный треугольник \\(ABC\\) с вершинами в узлах сетки (см. рис.). Косинус угла \\(ABC\\) этого треугольника равен:\n1) \\(-\\dfrac{5}{12}\\); 2) \\(-\\dfrac{5}{13}\\); 3) \\(-\\dfrac{12}{13}\\); 4) \\(-\\dfrac{12}{13}\\); 5) \\(-\\dfrac{12}{13}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
2,2015);

// A16 — полный бокал конуса высота 9 см, осталась 1/3 (по объёму); высота h оставшейся жидкости (ответ: 5)
q(T.geometry,`Из полного бокала, имеющего форму конуса высотой 9, отпили треть (по объёму) жидкости. Вычислите \\(\\dfrac{1}{h^2}\\), где \\(h\\) — высота оставшейся жидкости:\n1) 182; 2) 243; 3) 27; 4) 243; 5) \\(81\\).`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
2,2015);

// A17 — функция y=kx+b, симметрична относительно оси Oy, проходит через A(1/3; 6); k+b=? (ответ: 4)
q(T.functions,`График функции, заданной формулой \\(y=kx+b\\), симметричен относительно оси \\(Oy\\) и проходит через точку \\(A\\left(\\dfrac{1}{3};\\,6\\right)\\). Значение выражения \\(k+b\\) равно:\n1) \\(-\\dfrac{5}{2}\\); 2) \\(6\\dfrac{1}{3}\\); 3) \\(\\dfrac{1}{6}\\); 4) \\(\\dfrac{1}{6}\\); 5) 18.`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
2,2015);

// A18 — высоты равнобедренного ABC (AB=BC), AD=15, AO=10; длина AC (ответ: 3)
q(T.geometry,`Высоты остроугольного равнобедренного треугольника \\(ABC\\) (\\(AB=BC\\)) пересекаются в точке \\(O\\). Если высота \\(AD=15\\) и \\(AO=10\\), то длина стороны \\(AC\\) равна:\n1) \\(\\dfrac{17}{2}\\); 2) \\(7\\sqrt{6}\\); 3) \\(5\\sqrt{6}\\); 4) \\(10\\sqrt{3}\\); 5) \\(\\dfrac{5\\sqrt{13}}{10}\\).`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2015);

// ══ ЧАСТЬ B ══════════════════════════════════════════════════

// B1 — тетради: Витя купил n тетрадей за 24 тысячи, в другом на 1000 дешевле → на 2 больше → n=6
fb(T.word,`Витя купил в магазине некоторое количество тетрадей, заплатив за них 24 тысячи рублей. Затем он обнаружил, что в другом магазине тетради стоят на 1 тысячу рублей меньше, поэтому, заплатив такую же сумму, он мог бы купить на 2 тетради больше. Сколько тетрадей купил Витя?`,
6,2,2015);

// B2 — наибольшее целое решение неравенства 3^(3+1·5x) ≥ 1.08 → -12
fb(T.expineq,`Найдите наибольшее целое число, являющееся решением неравенства \\(3^{3+\\frac{1}{5}x}\\geq1{,}08\\).`,
-12,2,2015);

// B3 — |max-min| значений (2x²-7x)²=(5x+1)² → 8
fb(T.quadratic,`Найдите модуль разности наибольшего и наименьшего значений \\(x\\), удовлетворяющих уравнению \\((2x^2-7x)^2=(5x+1)^2\\).`,
8,2,2015);

// B4 — система x²+4x=15+3y, 4x+3y=12; найти x₁y₂+x₂y₁ → -24
fb(T.equations,`Пусть \\((x_1;y_1)\\), \\((x_2;y_2)\\) — решения системы уравнений \\(\\begin{cases}x^2+4x=15+3y\\\\4x+3y=12\\end{cases}\\). Найдите значение выражения \\(x_1y_2+x_2y_1\\).`,
-24,3,2015);

// B5 — сумма корней √(x+3+√(1-x))=√(12-2x+√(1-x)) → -6
fb(T.equations,`Найдите сумму корней (корень, если он единственный) уравнения \\(\\sqrt{x+3+\\sqrt{1-x}}=\\sqrt{12-2x+\\sqrt{1-x}}\\).`,
-6,2,2015);

// B6 — сумма целых решений неравенства (x²+7x+10(x-4)²)/(4-x)²≥0 → -8
fb(T.inequalities,`Найдите сумму целых решений неравенства \\(\\dfrac{(x^2+7x+10)(x-4)^2}{4-x^2}\\geq0\\).`,
-8,2,2015);

// B7 — каждое боковое ребро правильной четырёхугольной пирамиды образует с высотой угол 30°, ребро ос. √7; объём / значение √7 → 147
fb(Tx.stereo,`Каждое боковое ребро правильной четырёхугольной пирамиды образует с её высотой угол 30°, ребро основания равно \\(3\\sqrt{7}\\), угол 30°. Найдите объём пирамиды \\(V\\), в ответ запишите значение выражения \\(\\sqrt{7}\\).`,
147,3,2015);

// B8 — (в градусах) наименьший отрицательный корень уравнения sin²(5x-π/3)=1 → -6
fb(T.trig,`Найдите (в градусах) наименьший отрицательный корень уравнения \\(\\sin^2\\!\\left(5x-\\dfrac{\\pi}{3}\\right)=1\\).`,
-6,3,2015);

// B9 — количество корней уравнения sin x = √(x-1/(16x)) → 33
fb(T.trig,`Найдите количество корней уравнения \\(\\sin x=\\sqrt{x-\\dfrac{1}{16x}}\\).`,
33,3,2015);

// B10 — в прямоугольнике ABCD выбраны точки M на BC и N на AD; площадь ALCM; найти BCNM → -5
fb(T.geometry,`В прямоугольнике \\(ABCD\\) выбраны точки \\(M\\) на стороне \\(BC\\) и \\(N\\) на стороне \\(AD\\) так, что \\(ALCM\\) — ромб. Найдите площадь прямоугольника, если \\(AB=3\\), \\(BC=4\\), точка \\(K\\) — середина ромба \\(ALCM\\).`,
-5,3,2015);

// B11 — Пусть A=log₁₅·log₅(15)-log₅₁₅+4log₂₁₅; найти 2^A → 222
fb(T.log,`Пусть \\(A=\\log_{15}\\!2\\cdot\\log_5^{1/2}\\!5\\cdot15-\\log_{5^{15}}+4\\log_{2}\\!15\\). Найдите значение выражения \\(2^A\\).`,
222,3,2015);

// B12 — сумма натуральных чисел, при делении на 4 дают ост. 1, а при делении на 9 дают ост. 4 → 13975
fb(T.numbers,`Найдите сумму всех натуральных чисел, которые при делении на 4 дают в остатке 1, а при делении на 9 дают в остатке 4.`,
13975,3,2015);

});
run();
console.log(`ЦТ 2015 V1: добавлено ${added}, пропущено (дубликаты) ${skipped}`);
