'use strict';
/**
 * ЦТ 2016 Математика — Вариант 1 (30 заданий: A1-A18 + B1-B12)
 * Источник: ЦТ 2016.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 — наименьшее натуральное число, кратное 2, при делении на 15 с остатком — неполное частное 3 → 46 (ответ: 5)
q(T.numbers,`Определите наименьшее натуральное число, кратное 2, которое при делении на 15 с остатком даёт неполное частное, равное 3:\n1) 44; 2) 50; 3) 48; 4) 18; 5) 46.`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
1,2016);

// A2 — треугольник ABC, угол ACB=38°, угол AMN=109°, найти угол BAC [РИСУНОК; ответ: 1 — 33°]
q(T.geometry,`A2. На рисунке изображён треугольник \\(ABC\\), в котором \\(\\angle ACB=38°\\), \\(\\angle AMN=109°\\). Используя данные рисунка, найдите градусную меру угла \\(BAC\\):\n1) 33°; 2) 52°; 3) 26°; 4) 30°; 5) 60°.`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2016,'/img/ct/math/2016_v1_a2.png');

// A3 — числовая прямая 0 < k < t, верное утверждение [РИСУНОК; ответ: 4 — k/(-3)>t/(-3)]
q(T.inequalities,`A3. Используя рисунок, определите верное утверждение и укажите его номер:\n1) \\(-3k<-3t\\); 2) \\(\\dfrac{1}{t}>\\dfrac{1}{k}\\); 3) \\(3k>3t\\); 4) \\(\\dfrac{k}{-3}>\\dfrac{t}{-3}\\); 5) \\(k>t\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2016,'/img/ct/math/2016_v1_a3.png');

// A4 — значение выражения (степени) → 125/81 (ответ: 4)
q(T.numbers,`Значение выражения \\(3^{-4}\\cdot5^3\\) равно:\n1) \\(\\dfrac{27}{125}\\); 2) \\(\\dfrac{4}{5}\\); 3) \\(\\dfrac{16}{81}\\); 4) \\(\\dfrac{125}{81}\\); 5) \\(\\dfrac{125}{32}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2016);

// A5 — формула n-го члена АП (a₁=2, a₂=5) → aₙ=3n-1 (ответ: 3)
q(T.progression,`Укажите формулу для нахождения n-го члена арифметической прогрессии \\((a_n)\\), если \\(a_1=2\\), \\(a_2=5\\):\n1) \\(a_n=-3n+5\\); 2) \\(a_n=3n+5\\); 3) \\(a_n=3n-1\\); 4) \\(a_n=3n+2\\); 5) \\(a_n=5n+8\\).`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2016);

// A6 — прямая пропорциональность, таблица a,b; найти неизвестное a=32 (ответ: 1)
q(T.functions,`Величины \\(a\\) и \\(b\\) являются прямо пропорциональными. Используя данные таблицы \\([a:19\\,|\\,?\\,;\\; b:108\\,|\\,7{,}6]\\), найдите неизвестное значение \\(a\\):\n1) 32; 2) 27; 3) \\(\\dfrac{4}{14}\\); 4) 13; 5) 56.`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2016);

// A7 — площадь фигуры на рисунке → 35,5 см² (ответ: 1) [РИСУНОК]
q(T.geometry,`A7. Найдите площадь фигуры, изображённой на рисунке (в кв. сантиметрах):\n1) 35,5 см²; 2) 28 см²; 3) 36 см²; 4) 49 см²; 5) 35 см².`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2016,'/img/ct/math/2016_v1_a7.png');

// A8 — сумма целых значений f(x) на (-5;5) по графику (ответ: 3 — 7) [РИСУНОК]
q(T.functions,`A8. Найдите сумму всех целых значений функции \\(y=f(x)\\), заданной графиком на промежутке \\((-5;\\,5)\\) (см. рис.):\n1) 12; 2) 14; 3) 7; 4) 10; 5) 11.`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2016,'/img/ct/math/2016_v1_a8.png');

// A9 — вычислить НОК(12,18,36)+НОД(38,52) (ответ: 5)
q(T.numbers,`Найдите значение выражения \\(\\text{НОК}(12,\\,18,\\,36)+\\text{НОД}(38,\\,52)\\):\n1) 26; 2) 50; 3) 48; 4) 72; 5) 38.`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
1,2016);

// A10 — прямая пересекает плоскость α в точке A под углом 60°, B лежит на прямой, AB=6√2; расстояние от B до α (ответ: 2)
q(T.geometry,`Прямая \\(a\\) пересекает плоскость \\(\\alpha\\) в точке \\(A\\) и образует с плоскостью угол 60°. Точка \\(B\\) лежит на прямой \\(a\\), причём \\(AB=6\\sqrt{2}\\). Найдите расстояние от точки \\(B\\) до плоскости \\(\\alpha\\):\n1) \\(2\\sqrt{3}/6\\); 2) \\(3\\sqrt{6}\\); 3) \\(3\\sqrt{3}\\); 4) \\(6\\sqrt{6}\\); 5) \\(3\\sqrt{2}\\).`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2016);

// A11 — круговая диаграмма: гречиха → 150 га (ответ: 2) [РИСУНОК]
q(T.stats,`A11. На круговой диаграмме показано распределение посевных площадей под зерновые культуры в агрохозяйстве. Сколько гектаров отведено под гречиху, если овсом засеяно на 390 га больше, чем рожью?\n1) 110 га; 2) 150 га; 3) 120 га; 4) 160 га; 5) 180 га.`,
[{t:'2',c:true},{t:'1',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2016,'/img/ct/math/2016_v1_a11.png');

// A12 — стороны треугольника — целые числа, одна сторона 1, другая 3; периметр (ответ: 3)
q(T.geometry,`Длины всех сторон треугольника являются целыми числами. Если длина одной стороны треугольника равна 1, а другой — 3, то периметр треугольника равен:\n1) 7; 2) 14; 3) 7; 4) 6; 5) 8.`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
1,2016);

// A13 — сократить дробь (x²-9)/(8x²-23x-3) (ответ: 4)
q(T.equations,`Сократите дробь \\(\\dfrac{x^2-9}{8x^2-23x-3}\\):\n1) \\(\\dfrac{x-3}{8x+1}\\); 2) \\(\\dfrac{x+3}{8x+1}\\); 3) \\(\\dfrac{x+3}{8x-1}\\); 4) \\(\\dfrac{x+3}{8x+1}\\); 5) \\(\\dfrac{x-3}{8x-1}\\).`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
1,2016);

// A14 — два автомобиля, расстояние 160 км, встречное движение, скорости a и 50 км/ч; расстояние от A (ответ: 5)
q(T.word,`Из пунктов \\(A\\) и \\(B\\), расстояние между которыми 160 км, одновременно навстречу друг другу выехали два автомобиля с постоянными и неравными скоростями: из пункта \\(A\\) — со скоростью \\(a\\) км/ч, из пункта \\(B\\) — со скоростью 50 км/ч. Через некоторое время автомобили встретились. Составьте выражение, определяющее расстояние (в км) от пункта \\(A\\) до места встречи:\n1) \\(\\dfrac{160a}{a+b}\\); 2) \\(\\dfrac{160}{a+50}\\); 3) \\(\\dfrac{160a}{1600}\\); 4) \\(\\dfrac{1600}{a+50}\\); 5) \\(\\dfrac{160a}{a+50}\\).`,
[{t:'5',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false}],
1,2016);

// A15 — три точки A,B,C лежат на большой окружности сферы, ABC — равносторонний, AB=3√6; площадь треугольника (ответ: 3)
q(Tx.stereo,`Точки \\(A\\), \\(B\\), \\(C\\) лежат на большой окружности сферы так, что треугольник \\(ABC\\) — равносторонний. Если \\(AB=3\\sqrt{6}\\), то площадь треугольника \\(ABC\\) равна:\n1) \\(144\\pi\\); 2) \\(72\\pi\\); 3) \\(\\dfrac{81\\sqrt{3}}{4}\\); 4) \\(18\\pi\\); 5) \\(6\\sqrt{3}\\).`,
[{t:'3',c:true},{t:'1',c:false},{t:'2',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2016);

// A16 — упростить 5cos(2x+a)·sin(11x/2-a) (ответ: 1)
q(T.trig,`Упростите выражение \\(5\\cos(2x+a)+\\sin\\dfrac{11x}{2}-a\\):\n1) \\(6\\cos a\\); 2) \\(-6\\sin a\\); 3) \\(-4\\cos a\\); 4) \\(4\\sin a\\); 5) \\(4\\cos a\\).`,
[{t:'1',c:true},{t:'2',c:false},{t:'3',c:false},{t:'4',c:false},{t:'5',c:false}],
2,2016);

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

// A18 — сумма всех натуральных решений неравенства (6-x)(x+4)²(x-13)²≥0 (ответ: 4)
q(T.inequalities,`Сумма всех натуральных решений неравенства \\((6-x)(x+4)^2(x-13)^2\\geq0\\) равна:\n1) 11; 2) 19; 3) 21; 4) 34; 5) 49.`,
[{t:'4',c:true},{t:'1',c:false},{t:'2',c:false},{t:'3',c:false},{t:'5',c:false}],
2,2016);

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

// B1 — краска: минимальная стоимость покупки для площади 175 м² → 960 000 руб.
fb(T.word,`Для покраски стен общей площадью 175 м² планируется закупка краски. Объём и стоимость банок с краской приведены в таблице:\nОбъём банки (в литрах): 2,5 | 10. Стоимость банки с краской (в рублях): 75 000 | 270 000.\nКакую минимальную сумму (в рублях) потратят на покупку необходимого количества краски, если её расход составляет 0,2 л/м²?`,
960000,2,2016);

// B2 — корень уравнения 2√(x+√24x)=x+√(24x) → 9
fb(T.equations,`Найдите сумму корней (корень, если он единственный) уравнения \\(2\\sqrt{x+\\sqrt{24x}}=x+\\sqrt{24x}\\).`,
9,2,2016);

// B3 — равнобедренная трапеция с вписанной окружностью, сумма двух углов 60°, найти периметр → 38
fb(T.geometry,`В равнобедренную трапецию, площадь которой равна \\(\\dfrac{36\\sqrt{3}}{5}\\), вписана окружность. Сумма двух углов трапеции равна 60°. Найдите периметр трапеции.`,
38,2,2016);

// B4 — система уравнений {6x-7=5y-x, 5x²-xy+x²-12=12}, найти 5y-x → 23
fb(T.equations,`Пусть \\((x;\\,y)\\) — решение системы уравнений \\(\\begin{cases}6x-7=5y-x\\\\5x^2-xy+x^2-12=12\\end{cases}\\). Найдите значение выражения \\(5y-x\\).`,
23,2,2016);

// B5 — значение выражения 2(√(5√5-√36√6))·(√3+√6)-4√30 → 68
fb(T.numbers,`Найдите значение выражения \\(2\\left(\\sqrt{5}\\cdot\\sqrt{5}-\\sqrt{36}\\cdot\\sqrt{6}\\right)\\cdot\\left(\\sqrt{3}+\\sqrt{6}\\right)-4\\sqrt{30}\\).`,
-68,3,2016);

// B6 — сумма корней уравнения (x-64)^(4/3)·(4^3+3·2^x·2^x-81)=0 → 69
fb(T.expineq,`Найдите сумму корней уравнения \\((x-64)^{4/3}\\cdot(4^3+3\\cdot2^x-2^x-81)=0\\).`,
69,2,2016);

// B7 — площадь боковой поверхности правильной треугольной пирамиды (биссектриса 4√3, угол при вершине arcctg(2/3)) → 60
fb(Tx.stereo,`Найдите площадь боковой поверхности правильной треугольной пирамиды, если длина биссектрисы \\(4\\sqrt{3}\\) и плоский угол при вершине равен 2arcctg\\(\\dfrac{2}{3}\\).`,
60,3,2016);

// B8 — сумма наименьшего и наибольшего целых решений log½·log₂·log₃(x+15)>0 → 712
fb(T.log,`Найдите сумму наименьшего и наибольшего целых решений неравенства \\(\\log_\\frac{1}{2}\\log_2\\log_3(x+15)>0\\).`,
712,3,2016);

// B9 — (в градусах) сумма корней уравнения 10sin5cos5x+5sin10cos2x=0 на [110°;150°] → -34
fb(T.trig,`Найдите (в градусах) сумму корней уравнения \\(10\\sin5x\\cos5x+5\\sin10x\\cos2x=0\\) на промежутке \\([110°;\\,150°]\\).`,
-34,3,2016);

// B10 — произведение наименьшего и наибольшего целых решений |5-2x|+|2x+3|≤|4x+5| → 58
fb(T.inequalities,`Найдите произведение наименьшего и наибольшего целых решений неравенства \\(|5-2x|+|2x+3|\\leq|4x+5|\\).`,
58,2,2016);

// B11 — по периметру треугольника KMP движется точка, скорость в 6 раз больше, чем у A → 112
fb(T.word,`Точка \\(A\\) движется по периметру треугольника \\(KMP\\). Точки \\(K_1\\), \\(M_1\\), \\(P_1\\) лежат на медианах треугольника \\(KMP\\) и делят их в отношении 11:3, считая от вершины. По периметру треугольника \\(K_1M_1P_1\\) движется точка \\(B\\) со скоростью в 6 раз больше, чем у точки \\(A\\). Сколько раз точка \\(B\\) обойдёт по периметру \\(K_1M_1P_1\\) за то время, когда точка \\(A\\) дважды обойдёт по периметру \\(KMP\\)?`,
112,3,2016);

// B12 — объём меньшей части параллелепипеда ABCDA₁B₁C₁D₁ (ребро CC₁, CP·PC₁=2:1, секущая плоскость) → 724
fb(Tx.stereo,`Объём прямоугольного параллелепипеда \\(ABCDA_1B_1C_1D_1\\) равен 1728. Через точку \\(P\\) бокового ребра \\(CC_1\\), такую что \\(CP:PC_1=2:1\\). Через точку \\(P\\) перпендикулярно \\(D\\) к середине бокового ребра \\(AA_1\\) проведена секущая плоскость, которая делит прямоугольный параллелепипед на две части. Найдите объём меньшей из частей.`,
724,3,2016);

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