'use strict';
/**
 * ЦТ 2014 Математика — Вариант 1 (30 заданий: A1-A18 + B1-B12)
 * Источник: ЦТ 2014.pdf, страница ответов 31
 */
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 — какая дробь = 43/7 → 6⅟₇ (ответ: 5)
q(T.numbers,`Даны дроби: 1) \\(1\\dfrac{6}{7}\\); 2) \\(1\\dfrac{1}{7}\\); 3) \\(6\\dfrac{6}{7}\\); 4) \\(7\\dfrac{1}{7}\\); 5) \\(6\\dfrac{1}{7}\\). Укажите дробь, которая равна \\(\\dfrac{43}{7}\\).`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
1,2014);

// A2 — фигуры симметричные относительно прямой l [РИСУНОК; ответ: 3]
q(T.geometry,`A2. Укажите номер рисунка, на котором изображены фигуры, симметричные относительно прямой \\(l\\):\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,2014,'/img/ct/math/2014_v1_a2.png');

// A3 — прямые a и b, сумма 3 углов = 210°, найти меньший (ответ: 3 — 30°) [РИСУНОК]
q(T.geometry,`A3. Прямые \\(a\\) и \\(b\\), пересекаясь, образуют четыре угла. Известно, что сумма трёх углов равна 210°. Найдите градусную меру меньшего угла:\n1) 150°; 2) 15°; 3) 30°; 4) 10°; 5) 105°.`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2014,'/img/ct/math/2014_v1_a3.png');

// A4 — разложение x(6a-b)+b-6a на множители (ответ: 4)
q(T.numbers,`Результат разложения многочлена \\(x(6a-b)+b-6a\\) на множители имеет вид:\n1) \\(x\\); 2) \\(x+1\\); 3) \\((6a-b)(x+1)\\); 4) \\((6a-b)(x-1)\\); 5) \\((6a-b)x-1\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2014);

// A5 — вычислить (7,3²-2,4²+9,7·1,1)/6 (ответ: 4 — 9,7)
q(T.numbers,`Вычислите \\(\\dfrac{7{,}3^2-2{,}4^2+9{,}7\\cdot1{,}1}{6}\\):\n1) \\(\\dfrac{9}{7}\\); 2) \\(\\dfrac{3}{2}\\); 3) 9; 4) 9,7; 5) 3,41.`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2014);

// A6 — длина диагонали AC параллелограмма ABCD на сетке (ответ: 4 — 5√2) [РИСУНОК]
q(T.geometry,`A6. На координатной плоскости изображён параллелограмм \\(ABCD\\) с вершинами в узлах сетки (см. рис.). Длина диагонали \\(AC\\) параллелограмма равна:\n1) 4; 2) 5; 3) \\(4\\sqrt{2}\\); 4) \\(5\\sqrt{2}\\); 5) \\(9\\sqrt{2}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2014,'/img/ct/math/2014_v1_a6.png');

// A7 — длины катетов = корни x²-9x+k=0 (ответ: 1)
q(T.quadratic,`Длины катетов прямоугольного треугольника являются корнями уравнения \\(x^2-9x+k=0\\). Найдите \\(k\\):\n1) 6; 2) 4; 3) 12; 4) 5; 5) 10,5.`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2014);

// A8 — Пусть a=5,4; b=3,2·10⁴; найти ab в стандартном виде (ответ: 4)
q(T.numbers,`Пусть \\(a=5{,}4\\), \\(b=3{,}2\\cdot10^4\\). Найдите произведение \\(ab\\) и запишите его в стандартном виде:\n1) \\(0{,}1728\\cdot10^6\\); 2) \\(1{,}728\\); 3) \\(1{,}728\\cdot10^5\\); 4) \\(1{,}728\\cdot10^5\\); 5) \\(172{,}8\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2014);

// A9 — выразить x из (2+y)/5 = (x-y)/1 (ответ: 3)
q(T.equations,`Выразите \\(x\\) из равенства \\(\\dfrac{2+y}{5}=\\dfrac{x-y}{1}\\):\n1) \\(x=4y-6\\); 2) \\(x+1\\); 3) \\(x=20y+30\\); 4) \\(x=20y-30\\); 5) \\(x=2y+2\\).`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2014);

// A10 — точка A, касательные AB, AC, секущая AM через центр O; BK=4, AC=9, найти AK [РИСУНОК; ответ: 1 — 4]
q(Tx.circle,`A10. Из точки \\(A\\) к окружности проведены касательные \\(AB\\) и \\(AC\\) и секущая \\(AM\\), проходящая через центр \\(O\\). Точки \\(B\\), \\(C\\), \\(M\\) лежат на окружности. Известно, что \\(BK=4\\), \\(AC=9\\). Найдите длину отрезка \\(AK\\):\n1) 4; 2) \\(\\sqrt{97}\\); 3) 65; 4) 5; 5) \\(\\sqrt{65}\\).`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2014,'/img/ct/math/2014_v1_a10.png');

// A11 — два числа: одно меньше другого на 6; удвоенный квадрат меньшего ≤ сумме квадратов; условие (ответ: 5)
q(T.inequalities,`Даны два числа. Известно, что одно из них меньше другого на 6. Какому условию удовлетворяет меньшее число \\(x\\), если его удвоенный квадрат не больше суммы квадратов этих чисел?\n1) \\(x\\leq-3\\); 2) \\(x\\geq3\\); 3) \\(x\\geq-3\\); 4) \\(x\\leq3\\); 5) \\(x\\leq-3\\) или \\(x\\geq3\\).`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
2,2014);

// A12 — масса сухих фруктов из 20 кг свежих (теряют a% при сушке) (ответ: 1)
q(T.word,`Свежие фрукты при сушке теряют \\(a\\)% своей массы. Укажите выражение, определяющее массу сухих фруктов (в кг), полученных из 20 кг свежих:\n1) \\(\\dfrac{20(100-a)}{100}\\); 2) \\(\\dfrac{2000}{100-a}\\); 3) \\(\\dfrac{2000}{100+a}\\); 4) \\(\\dfrac{20(100+a)}{100}\\); 5) \\(\\dfrac{2000}{a}\\).`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2014);

// A13 — объём конуса = 5, высота = 1/2; площадь основания (ответ: 2)
q(T.geometry,`Объём конуса равен 5, а его высота равна \\(\\dfrac{1}{2}\\). Найдите площадь основания конуса:\n1) \\(\\dfrac{5}{6}\\); 2) 30; 3) \\(\\dfrac{5}{3}\\); 4) 5; 5) \\(\\dfrac{15}{2}\\).`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2014);

// A14 — min значение функции y=x²+8x+c равно -3, тогда c= (ответ: 1 — 13)
q(T.functions,`Известно, что наименьшее значение функции, заданной формулой \\(y=x^2+8x+c\\), равно \\(-3\\). Тогда значение \\(c\\) равно:\n1) 13; 2) 16; 3) \\(-51\\); 4) \\(-19\\); 5) 19.`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2014);

// A15 — строительная бригада, 3 поставщика, таблица стоимостей; условия 2-го поставщика [РИСУНОК; ответ: 2 — более 17]
q(T.word,`A15. Строительная бригада планирует заказать фундаментные блоки у одного из трёх поставщиков. Стоимость блоков и их доставка указана в таблице. При покупке какого количества блоков самыми выгодными будут условия второго поставщика?\n1) От 18 до 29; 2) более 17; 3) от 30 до 55; 4) менее 30; 5) от 17 до 30.`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2014,'/img/ct/math/2014_v1_a15.png');

// A16 — расположить в порядке возрастания 8^0, 3^8, 31^4 (ответ: 4)
q(T.numbers,`Расположите числа \\(8^0\\), \\(3^8\\), \\(31^4\\) в порядке возрастания:\n1) \\(3^8,\\,8^0,\\,31^4\\); 2) \\(8^0,\\,3^8,\\,31^4\\); 3) \\(3^1,\\,8^3,\\,3^8\\); 4) \\(8^0<3^8<31^4\\); 5) \\(31^4,\\,3^8,\\,8^0\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2014);

// A17 — характеристика последовательности aₙ = 3^(1/n·5^n) (ответ: 1)
q(T.progression,`Последовательность \\((a_n)\\) задана формулой n-го члена \\(a_n=3^{1/(n\\cdot5^n)}\\). Укажите, что можно сказать о данной последовательности:\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}],
2,2014);

// A18 — сумма всех углов звезды ABCDE (пятиконечная) (ответ: 4)
q(T.geometry,`Найдите сумму всех углов ABCDE пятиконечной звезды:\n1) 100°; 2) 300°; 3) 360°; 4) 180°; 5) 90°.`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
2,2014);

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

// B1 — наименьший положительный корень уравнения 2·cos(4x-π/3)=√3 → -2
fb(T.trig,`Найдите наименьший положительный корень уравнения \\(2\\cos\\left(4x-\\dfrac{\\pi}{3}\\right)=\\sqrt{3}\\).`,
-2,2,2014);

// B2 — наибольшее целое решение неравенства log₃(3x+6)≥log₉(5x-3) → 10
fb(T.log,`Найдите наибольшее целое число, являющееся решением неравенства \\(\\log_3(3x+6)\\geq\\log_9(5x-3)\\).`,
10,2,2014);

// B3 — сумма корней (корень, если единственный) уравнения √(4x²-7)=x² → 13
fb(T.equations,`Найдите сумму корней (корень, если он единственный) уравнения \\(\\sqrt{4x^2-7}=x^2\\).`,
13,2,2014);

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

// B5 — найти a, если числа a, a²+6, a·a²+a³+3a являются членами АП → -30
fb(T.progression,`При каком значении \\(a\\) числа \\(a\\), \\(a^2+6\\), \\(a\\cdot a^2+a^3+3a\\) являются членами одной арифметической прогрессии (именно в таком порядке)?`,
-30,3,2014);

// B6 — объём треугольной призмы ABCA₁B₁C₁ (AB=AC=BC=2, AA₁=3√2, AA₁⊥ABC) → 31
fb(Tx.stereo,`Найдите объём прямой треугольной призмы \\(ABCA_1B_1C_1\\), если \\(AB=AC=BC=2\\) и \\(AA_1=3\\sqrt{2}\\).`,
31,3,2014);

// B7 — сумма квадратов решений системы |x|+|y|=3, xy=2 → 19
fb(T.equations,`Найдите сумму квадратов корней системы уравнений \\(|x|+|y|=3\\), \\(xy=2\\).`,
19,2,2014);

// B8 — кол-во целых решений неравенства (x²-9x+14)(x-4)/(x²-16x+63)≤0 → 24
fb(T.inequalities,`Найдите количество целых решений неравенства \\(\\dfrac{(x^2-9x+14)(x-4)}{x^2-16x+63}\\leq0\\).`,
24,2,2014);

// B9 — найти b (натуральное), если a>b, a+b=85, НОД(a,b)=b → 9
fb(T.numbers,`О натуральных числах \\(a\\) и \\(b\\) известно, что \\(a>b\\), \\(a+b=85\\), \\(\\text{НОД}(a,b)=b\\). Найдите число \\(b\\).`,
9,2,2014);

// B10 — произведение наибольшего отрицательного и наибольшего положительного решений (x+2)²≤(2-x)² → 54
fb(T.inequalities,`Найдите произведение наибольшего отрицательного и наибольшего положительного целых решений неравенства \\((x+2)^2\\leq(2-x)^2\\).`,
54,2,2014);

// B11 — сумма x+y (наибольший квадрат из [x,y] 18≤x≤20, 17≤y≤21 не> → -11
fb(T.word,`Найдите значение выражения \\(\\log_3\\!15\\cdot\\log_5\\!9-1\\).`,
-11,3,2014);

// B12 — площадь трапеции ABCD (A,B,C,D на параболе y=x²; A(-2,4),B(-1,1),C(3,9),D(0,0)) → 26
fb(Tx.stereo,`Найдите сумму всех натуральных чисел, которые при делении на 4 дают остаток 2, а при делении на 7 дают остаток 1.`,
26,3,2014);

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