'use strict';
/**
 * ЦТ 2013 Математика — Вариант 1 (30 заданий: A1-A18 + B1-B12)
 * Источник: ЦТ2013.pdf + Ответы ЦТ 2013.pdf
 */
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,img){
  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,img||null,'ЦТ');
  added++;
}

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

// A1 — число противоположное 0,9 среди √9; -9; 1/9; -0,9; 9⁻¹ (ответ: 4)
q(T.numbers,`Среди чисел \\(\\sqrt{9}\\); \\(-9\\); \\(\\dfrac{1}{9}\\); \\(-0{,}9\\); \\(9^{-1}\\) выберите число, противоположное числу \\(0{,}9\\):\n1) \\(\\sqrt{9}\\); 2) \\(-9\\); 3) \\(\\dfrac{1}{9}\\); 4) \\(-0{,}9\\); 5) \\(9^{-1}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2013);

// A2 — цилиндр O, O₁, образующей является отрезок [РИСУНОК; ответ: 5 — AD]
q(Tx.stereo,`A2. Пусть \\(O\\) и \\(O_1\\) — центры оснований цилиндра, изображённого на рисунке. Тогда образующей цилиндра является отрезок:\n1) \\(DB\\); 2) \\(DC\\); 3) \\(DO_1\\); 4) \\(OO_1\\); 5) \\(AD\\).`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
1,2013,'/img/ct/math/2013/a2.png');

// A3 — точки, принадлежащие графику y=13 [РИСУНОК; ответ: 2 — T]
q(T.functions,`A3. Среди точек \\(B(13;0)\\), \\(T(-7;13)\\), \\(C(-\\sqrt{13};\\sqrt{13})\\), \\(O(0;0)\\), \\(L(0;-13)\\) укажите ту, которая принадлежит графику функции, изображённому на рисунке:\n1) \\(B\\); 2) \\(T\\); 3) \\(C\\); 4) \\(O\\); 5) \\(L\\).`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2013,'/img/ct/math/2013/a3.png');

// A4 — значение выражения 2·7/12 - 2·17/36 · 2,7 - 0,4 (ответ: 3)
q(T.numbers,`Найдите значение выражения \\(\\left(2\\dfrac{7}{12}-2\\dfrac{17}{36}\\right)\\cdot2{,}7-0{,}4\\):\n1) 0,1; 2) -0,7; 3) -0,4; 4) 0,3; 5) -1,5.`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2013);

// A5 — одно число меньше другого на 64, составляет 16% → меньшее (ответ: 3)
q(T.word,`Одно число меньше другого на 64, что составляет 16% большего числа. Найдите меньшее число:\n1) 800; 2) 470; 3) 336; 4) 464; 5) 390.`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2013);

// A6 — угол AOM, лучи OB и OC; ZAOC=107°, ZBOM=113° → угол [РИСУНОК; ответ: 4]
q(T.geometry,`A6. На рисунке изображён развёрнутый угол \\(AOM\\) и лучи \\(OB\\) и \\(OC\\). Известно, что \\(\\angle AOC=107°\\), \\(\\angle BOM=113°\\). Найдите величину угла \\(\\angle BOC\\):\n1) 73°; 2) 67°; 3) 17°; 4) 40°; 5) 23°.`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2013,'/img/ct/math/2013/a6.png');

// A7 — конус, образующая 2b, угол к плоскости 60°, боковая поверхность (ответ: 1)
q(Tx.stereo,`Образующая конуса равна \\(2b\\) и наклонена к плоскости основания под углом 60°. Найдите боковую поверхность конуса:\n1) \\(3\\pi b^2\\); 2) \\(3\\pi b\\cdot\\sqrt{3}\\); 3) \\(3\\pi b\\); 4) \\(6b\\); 5) \\(3\\pi b^2\\cdot\\sqrt{3}\\).`,
[{t:'1',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
2,2013);

// A8 — расположить числа 2,44; 18/7; 2,(4); 2,{4} в порядке возрастания (ответ: 2)
q(T.numbers,`Расположите числа \\(2{,}44\\); \\(\\dfrac{18}{7}\\); \\(2{,}(4)\\); \\(2{,}4\\) в порядке возрастания:\n1) \\(2{,}44;\\;\\dfrac{18}{7};\\;2{,}(4);\\;2{,}4\\); 2) \\(2{,}4;\\;2{,}44;\\;2{,}(4);\\;\\dfrac{18}{7}\\); 3) \\(\\dfrac{18}{7};\\;2{,}(4);\\;2{,}44;\\;2{,}4\\); 4) \\(2{,}(4);\\;\\dfrac{18}{7};\\;2{,}44;\\;2{,}4\\); 5) \\(2{,}4;\\;2{,}(4);\\;\\dfrac{18}{7};\\;2{,}44\\).`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2013);

// A9 — прямоугольник: одна сторона на 7 см длиннее другой, S=78 → уравнение (ответ: 2)
q(T.quadratic,`Одна из сторон прямоугольника на 7 см длиннее другой, а его площадь равна 78 см². Уравнение, одним из корней которого является длина меньшей стороны прямоугольника, имеет вид:\n1) \\(x^2-78x+7=0\\); 2) \\(x^2-7x-78=0\\); 3) \\(x^2+7x-78=0\\); 4) \\(x^2+7x+78=0\\); 5) \\(x^2-78x-7=0\\).`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2013);

// A10 — квадрат ABCD с A(-3;3) и B(4;1), периметр (ответ: 5)
q(T.geometry,`Точки \\(A(-3;\\,3)\\) и \\(B(4;\\,1)\\) — вершины квадрата \\(ABCD\\). Периметр квадрата равен:\n1) \\(4\\sqrt{17}\\); 2) \\(2\\sqrt{53}\\); 3) 18; 4) 15; 5) \\(4\\sqrt{53}\\).`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
2,2013);

// A11 — упростить 11π/(11+√5) - √55 + 12√5/(11-√5) (ответ: 4)
q(T.numbers,`Упростите выражение \\(\\dfrac{11\\pi}{11+\\sqrt{5}}-\\sqrt{55}+\\dfrac{12\\sqrt{5}}{\\sqrt{11}-\\sqrt{5}}\\):\n1) \\(\\dfrac{1}{\\sqrt{11}+\\sqrt{5}}\\); 2) 55; 3) 16; 4) 26; 5) \\(\\dfrac{5}{\\sqrt{11}-\\sqrt{5}}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
2,2013);

// A12 — решение неравенства (26/3 - 7x²+4x/7) > (2-3x²/2) (ответ: 3)
q(T.inequalities,`Решением неравенства \\(\\dfrac{26}{3}-\\dfrac{7x^2+4x}{7}>2-\\dfrac{3x^2}{2}\\) является промежуток:\n1) \\((14;\\,+\\infty)\\); 2) \\((-14;\\,+\\infty)\\); 3) \\(\\left(-\\infty;\\,\\dfrac{1}{14}\\right)\\); 4) \\((-\\infty;\\,14)\\); 5) \\(\\left(-\\infty;\\,-\\dfrac{1}{14}\\right)\\).`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2013);

// A13 — средняя линия равнобедренной трапеции (угол 60°, сторона=10) (ответ: 5)
q(T.geometry,`Найдите длину средней линии прямоугольной трапеции с острым углом 60°, у которой большая боковая сторона и большее основание равны 10:\n1) \\(5{,}5\\); 2) 4; 3) 5; 4) 7; 5) 7,5.`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
2,2013);

// A14 — упростить (5+a²+25c²-b²)/(2ac) · (a+5c)·2ac (ответ: 1)
q(T.numbers,`Упростите выражение \\(\\left(5+\\dfrac{a^2+25c^2-b^2}{2ac}\\right)\\cdot(a+5c)\\cdot2ac\\):\n1) \\(a+5c-b\\); 2) \\(4a^2c\\); 3) 5; 4) \\(a+5c+b\\); 5) \\(a-5c-b\\).`,
[{t:'1',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
2,2013);

// A15 — сумма целых решений неравенства 3(x-5)>(x-5)² (ответ: 1)
q(T.inequalities,`Найдите сумму целых решений неравенства \\(3(x-5)>(x-5)^2\\):\n1) 4; 2) 26; 3) 9; 4) 4; 5) -9.`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2013);

// A16 — прямоугольный параллелепипед AB=12, AD=3, плоскость через середины AA₁ и BB₁ под 60° [РИСУНОК; ответ: 1 — 72]
q(Tx.stereo,`A16. \\(ABCDA_1B_1C_1D_1\\) — прямоугольный параллелепипед такой, что \\(AB=12\\), \\(AD=3\\). Через середины рёбер \\(AA_1\\) и \\(BB_1\\) проведена плоскость (см. рис.), составляющая угол 60° с плоскостью основания \\(ABCD\\). Найдите площадь сечения параллелепипеда этой плоскостью:\n1) 72; 2) \\(36\\sqrt{3}\\); 3) 36; 4) 18; 5) \\(36\\sqrt{2}\\).`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
3,2013,'/img/ct/math/2013/a16.png');

// A17 — наибольшее значение y=(3sin2x+3cos2x)² (ответ: 3)
q(T.trig,`Сумма наибольшего и наименьшего значений функции \\(y=(3\\sin2x+3\\cos2x)^2\\) равна:\n1) 8; 2) 9; 3) 18; 4) 36; 5) 3.`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2013);

// A18 — корень уравнения log₃((9-4x)/(3x-11)) + log₉((9-3x)(3x-11)) = 0 в промежутке (ответ: 4)
q(T.log,`Корень уравнения \\(\\log_3\\dfrac{9-4x}{3x-11}+\\log_9[(9-3x)(3x-11)]=0\\) (или сумма, если корней несколько) принадлежит промежутку:\n1) \\([0;\\,1]\\); 2) \\([1;\\,2]\\); 3) \\([2;\\,3]\\); 4) \\([3;\\,4]\\); 5) \\([-1;\\,0]\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
3,2013);

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

// B1 — автомобиль 21л при 9л/100км, затем 12л/100км → сколько литров на то же расстояние → 28
fb(T.word,`Автомобиль проехал некоторое расстояние, израсходовав 21 л топлива. Расход топлива при этом составил 9 л на 100 км пробега. Затем автомобиль существенно увеличил скорость, в результате чего расход топлива вырос до 12 л на 100 км. Сколько литров топлива понадобится автомобилю, чтобы проехать такое же расстояние?`,
28,2,2013);

// B2 — √(x-5)·(x+2)=0, сумма корней → 5
fb(T.equations,`Решите уравнение \\(\\sqrt{x-5}\\cdot(x+2)=0\\). В ответ запишите сумму его корней (корень, если он один).`,
5,2,2013);

// B3 — равнобедренный треугольник, основание=10, sin угла=0.6, площадь → 75
fb(T.geometry,`Основание остроугольного равнобедренного треугольника равно 10, а синус противолежащего ему угла равен 0,6. Найдите площадь треугольника.`,
75,2,2013);

// B4 — система {4y+x=-14, 4y²-4xy+x²=16}, найти x+y → -5
fb(T.equations,`Пусть \\((x;\\,y)\\) — целочисленное решение системы уравнений \\(\\begin{cases}4y+x=-14\\\\4y^2-4xy+x^2=16\\end{cases}\\). Найдите значение \\(x+y\\).`,
-5,3,2013);

// B5 — наибольшее целое решение неравенства 2^(4x-15) - 10^(x-15) > 2^(2x-15) → 12? Hmm, key=12
fb(T.expineq,`Найдите наибольшее целое решение неравенства \\(2^{4x-2\\cdot15}-1\\cdot10^{x-15}>2^{2x-15}\\).`,
12,3,2013);

// B6 — количество корней 3·2sin2x + 8cos4x = 23 на [-π; 3π/4] → 4
fb(T.trig,`Найдите количество корней уравнения \\(3\\cdot2^{\\sin2x}+8\\cos4x=23\\) на промежутке \\([-\\pi;\\,3\\pi/4]\\).`,
4,2,2013);

// B7 — геом. прогрессия q=1/5, 10 членов, S=24, сумма нечётных членов → 20
fb(T.progression,`Геометрическая прогрессия со знаменателем 5 содержит 10 членов. Сумма всех членов прогрессии равна 24. Найдите сумму всех членов прогрессии с нечётными номерами.`,
20,2,2013);

// B8 — сумма корней |(x-1)(x-6)| - (x-1)(x-6) = 11(x-6) → 21
fb(T.equations,`Найдите сумму корней уравнения \\(|(x-1)(x-6)|-(x-1)(x-6)=11(x-6)\\).`,
21,3,2013);

// B9 — два города 100км, первый автомобиль v+10, один с остановкой 50мин → max v₁ чтобы не позже → 40
fb(T.word,`Из города \\(A\\) в город \\(B\\), расстояние между которыми 100 км, одновременно выезжают два автомобиля. Скорость первого на 10 км/ч больше скорости второго, но один из них делает в пути остановку на 50 мин. Найдите наибольшее значение скорости (в км/ч) первого автомобиля, при движении с которой он прибудет в \\(B\\) одновременно или раньше второго.`,
40,3,2013);

// B10 — окружность радиуса 3/2, касательная AB, секущая AC=3AB → площадь ABC [РИСУНОК]
fb(Tx.circle,`B10. Из точки \\(A\\) проведены к окружности радиуса \\(\\dfrac{3}{2}\\) касательная \\(AB\\) (\\(B\\) — точка касания) и секущая, проходящая через центр окружности и пересекающая её в точках \\(D\\) и \\(C\\). Если длина секущей \\(AC\\) в 3 раза больше длины касательной \\(AB\\), то найдите площадь треугольника \\(ABC\\).`,
6,3,2013,'/img/ct/math/2013/b10.png');

// B11 — cos(α+14°)=3/5, 0<α+14°<90°, 15√2·cos(α+59°) → -3
fb(T.trig,`Если \\(\\cos(\\alpha+14°)=\\dfrac{3}{5}\\), \\(0<\\alpha+14°<90°\\), то значение выражения \\(15\\sqrt{2}\\cdot\\cos(\\alpha+59°)\\) равно ___.`,
-3,2,2013);

// B12 — уравнение 30x²/(x²+25) = x²+2√5x+8; x·|x| → -5
fb(T.equations,`Решите уравнение \\(\\dfrac{30x^2}{x^2+25}=x^2+2\\sqrt{5}\\,x+8\\). В ответ запишите значение \\(x\\cdot|x|\\), где \\(x\\) — корень уравнения.`,
-5,3,2013);

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