/**
 * Seed: Математика — вопросы для тестов
 *
 * Источники:
 *   — 21 вопрос ЦТ/ЦЭ (общие)
 *   — 32 вопроса ЦТ 2021, Вариант 1 (A1–A18 + B1–B14)
 *
 * Запуск: node src/db/seed-math.js  (из папки backend/)
 */
const db = require('./db');

/* ── helpers ─────────────────────────────────────────────────────────── */
function getOrCreateTopic(subjectId, name) {
  const ex = db.prepare('SELECT id FROM topics WHERE subject_id=? AND LOWER(name)=LOWER(?)').get(subjectId, name);
  if (ex) return ex.id;
  return db.prepare('INSERT INTO topics (subject_id, name) VALUES (?,?)').run(subjectId, name).lastInsertRowid;
}

/* ── subject ─────────────────────────────────────────────────────────── */
const math = db.prepare("SELECT id FROM subjects WHERE slug='math'").get();
if (!math) { console.error('Subject "math" not found. Run migrate first.'); process.exit(1); }
const SID = math.id;

/* ═══════════════════════════════════════════════════════════════════════
   Вопросы
   Поля: topic, difficulty, text, options[{text,correct}], explanation
   Необязательные: year (число), type ('single'|'multiple')
   ═══════════════════════════════════════════════════════════════════════ */
const questions = [

  /* ══════════════════════════════════════════════════════════════════════
     РАЗДЕЛ 1 — Общие задания ЦТ/ЦЭ
     ══════════════════════════════════════════════════════════════════════ */

  {
    topic: 'Арифметика и степени', difficulty: 1,
    text: 'Вычислите: \\((-3)^2 - 2^3 + 1\\)',
    options: [
      { text: '\\(2\\)',   correct: true  },
      { text: '\\(4\\)',   correct: false },
      { text: '\\(0\\)',   correct: false },
      { text: '\\(-2\\)',  correct: false },
      { text: '\\(18\\)',  correct: false },
    ],
    explanation: '\\((-3)^2=9,\\;2^3=8.\\;9-8+1=2\\)',
  },
  {
    topic: 'Словесные задачи', difficulty: 1,
    text: 'Толя купил 3 альбома и 5 карандашей. Стоимость альбома — 1 р. 20 к., карандаша — 25 к. Сколько копеек осталось у Толи после покупки, если всего у него было 6 р.?',
    options: [
      { text: '115 к.', correct: true  },
      { text: '145 к.', correct: false },
      { text: '110 к.', correct: false },
      { text: '125 к.', correct: false },
      { text: '275 к.', correct: false },
    ],
    explanation: '3·120+5·25=360+125=485 к. Остаток: 600−485=115 к.',
  },
  {
    topic: 'Теория чисел', difficulty: 1,
    text: 'Укажите формулу для нахождения делимого \\(n\\), если делитель равен 15, неполное частное \\(k\\), остаток 7:',
    options: [
      { text: '\\(n=15k+7\\)',   correct: true  },
      { text: '\\(n=15(k+7)\\)', correct: false },
      { text: '\\(n=k+22\\)',    correct: false },
      { text: '\\(n=7k+15\\)',   correct: false },
    ],
    explanation: 'По теореме о делении с остатком: \\(n=d\\cdot q+r=15k+7\\)',
  },
  {
    topic: 'Тригонометрия', difficulty: 1,
    text: 'Среди значений \\(-\\dfrac{\\pi}{6};\\;\\dfrac{\\pi}{4};\\;\\dfrac{\\pi}{3};\\;-\\dfrac{3\\pi}{2};\\;-6\\pi\\) укажите то, при котором \\(\\sin x=0\\):',
    options: [
      { text: '\\(-6\\pi\\)',             correct: true  },
      { text: '\\(-\\dfrac{\\pi}{6}\\)',  correct: false },
      { text: '\\(\\dfrac{\\pi}{4}\\)',   correct: false },
      { text: '\\(-\\dfrac{3\\pi}{2}\\)', correct: false },
    ],
    explanation: '\\(\\sin(-6\\pi)=0\\), так как \\(-6\\pi\\) кратно \\(\\pi\\).',
  },
  {
    topic: 'Квадратные уравнения', difficulty: 2,
    text: 'Укажите квадратное уравнение, произведение действительных корней которого равно 5:',
    options: [
      { text: '\\(x^2-6x+5=0\\)', correct: true  },
      { text: '\\(x^2-4x+5=0\\)', correct: false },
      { text: '\\(x^2-5x+6=0\\)', correct: false },
      { text: '\\(x^2+5x=0\\)',   correct: false },
    ],
    explanation: 'По формуле Виета произведение корней \\(=c/a\\). Для \\(x^2-6x+5=0\\): \\(5/1=5\\). Корни: \\(x=1,\\;x=5\\).',
  },
  {
    topic: 'Тригонометрия', difficulty: 2,
    text: 'Найдите значение выражения \\(\\dfrac{38}{\\pi}\\cdot\\arcsin(-1)-|-7|\\)',
    options: [
      { text: '\\(-26\\)', correct: true  },
      { text: '\\(-16\\)', correct: false },
      { text: '\\(-12\\)', correct: false },
      { text: '\\(26\\)',  correct: false },
    ],
    explanation: '\\(\\arcsin(-1)=-\\dfrac{\\pi}{2}\\). Тогда: \\(\\dfrac{38}{\\pi}\\cdot(-\\dfrac{\\pi}{2})-7=-19-7=-26\\).',
  },
  {
    topic: 'Квадратные уравнения', difficulty: 1,
    text: 'Найдите нули функции \\(f(x)=x^2+4x-5\\):',
    options: [
      { text: '\\(x=-5\\) и \\(x=1\\)',  correct: true  },
      { text: '\\(x=5\\) и \\(x=-1\\)',  correct: false },
      { text: '\\(x=5\\) и \\(x=1\\)',   correct: false },
      { text: '\\(x=-5\\) и \\(x=-1\\)', correct: false },
    ],
    explanation: 'Дискриминант: \\(16+20=36\\). \\(x_{1,2}=\\dfrac{-4\\pm6}{2}\\). \\(x_1=-5,\\;x_2=1\\).',
  },
  {
    topic: 'Тригонометрия', difficulty: 2,
    text: 'Найдите \\(\\operatorname{ctg}^2\\alpha\\), если \\(\\sin\\alpha=\\dfrac{1}{5}\\):',
    options: [
      { text: '\\(24\\)',             correct: true  },
      { text: '\\(\\frac{1}{24}\\)', correct: false },
      { text: '\\(4\\)',              correct: false },
      { text: '\\(25\\)',             correct: false },
    ],
    explanation: '\\(\\cos^2\\alpha=1-\\tfrac{1}{25}=\\tfrac{24}{25}\\). \\(\\operatorname{ctg}^2\\alpha=\\dfrac{24/25}{1/25}=24\\).',
  },
  {
    topic: 'Прогрессии', difficulty: 2,
    text: 'Пятый член геометрической прогрессии равен 48, шестой — 96. Найдите первый член:',
    options: [
      { text: '\\(3\\)', correct: true  },
      { text: '\\(1\\)', correct: false },
      { text: '\\(2\\)', correct: false },
      { text: '\\(4\\)', correct: false },
    ],
    explanation: '\\(q=96/48=2\\). \\(b_1=48/2^4=3\\).',
  },
  {
    topic: 'Неравенства', difficulty: 2,
    text: 'Сколько целых решений имеет неравенство \\(-3\\le2-\\dfrac{3x-2}{2}<27\\,\\)?',
    options: [
      { text: '\\(20\\)', correct: true  },
      { text: '\\(18\\)', correct: false },
      { text: '\\(19\\)', correct: false },
      { text: '\\(21\\)', correct: false },
    ],
    explanation: 'Решение: \\(-15\\le x\\le4\\). Целые: от −15 до 4 → \\(4-(-15)+1=20\\) чисел.',
  },
  {
    topic: 'Квадратные уравнения', difficulty: 1,
    text: 'Функция \\(f(x)=x^2+4x-5\\). Найдите сумму нулей функции.',
    options: [
      { text: '\\(-4\\)', correct: true  },
      { text: '\\(4\\)',  correct: false },
      { text: '\\(-5\\)', correct: false },
      { text: '\\(0\\)',  correct: false },
    ],
    explanation: 'По теореме Виета: \\(-b/a=-4\\).',
  },
  {
    topic: 'Прогрессии', difficulty: 2,
    text: 'Найдите сумму всех натуральных чисел, кратных 9, которые больше 141, но меньше 170.',
    options: [
      { text: '\\(459\\)', correct: true  },
      { text: '\\(468\\)', correct: false },
      { text: '\\(315\\)', correct: false },
      { text: '\\(414\\)', correct: false },
    ],
    explanation: 'Числа: 144, 153, 162. Сумма: \\(144+153+162=459\\).',
  },
  {
    topic: 'Геометрия', difficulty: 2,
    text: 'Радиус описанной окружности прямоугольного треугольника \\(ABC\\) (\\(\\angle ABC=90°\\)) равен \\(18\\sqrt{2}\\). Найдите \\(90\\cdot\\cos\\angle ACB\\), если \\(BC=6\\sqrt{2}\\).',
    options: [
      { text: '\\(15\\)', correct: true  },
      { text: '\\(30\\)', correct: false },
      { text: '\\(45\\)', correct: false },
      { text: '\\(60\\)', correct: false },
    ],
    explanation: '\\(AC=2R=36\\sqrt{2}\\). \\(\\cos\\angle ACB=\\dfrac{6\\sqrt{2}}{36\\sqrt{2}}=\\dfrac{1}{6}\\). Ответ: \\(15\\).',
  },
  {
    topic: 'Словесные задачи', difficulty: 2,
    text: 'Проездной на месяц стоит 39 р., разовый — 80 к. 75% потраченной Машей суммы равны стоимости проездного. Сколько поездок она совершила?',
    options: [
      { text: '65', correct: true  },
      { text: '52', correct: false },
      { text: '75', correct: false },
      { text: '60', correct: false },
    ],
    explanation: '75% суммы=39 р. → сумма=52 р.=5200 к. Поездок: \\(5200/80=65\\).',
  },
  {
    topic: 'Неравенства', difficulty: 2,
    text: 'Найдите сумму наименьшего и наибольшего целых решений неравенства \\(-3\\le2-\\dfrac{3x-2}{2}<27\\).',
    options: [
      { text: '\\(-11\\)', correct: true  },
      { text: '\\(-10\\)', correct: false },
      { text: '\\(-12\\)', correct: false },
      { text: '\\(-14\\)', correct: false },
    ],
    explanation: 'Целые решения: от −15 до 4. Сумма крайних: \\(-15+4=-11\\).',
  },
  {
    topic: 'Функции', difficulty: 2,
    text: 'Функция \\(y=f(x)\\) чётная. Точки \\(A(3;-\\tfrac{2}{3})\\) и \\(B(6;-\\tfrac{3}{4})\\) на графике. Найдите \\(6f(-3)+8f(-6)\\).',
    options: [
      { text: '\\(-10\\)', correct: true  },
      { text: '\\(10\\)',  correct: false },
      { text: '\\(-6\\)',  correct: false },
      { text: '\\(-4\\)',  correct: false },
    ],
    explanation: '\\(f(-3)=f(3)=-\\tfrac{2}{3}\\), \\(f(-6)=-\\tfrac{3}{4}\\). \\(6\\cdot(-\\tfrac{2}{3})+8\\cdot(-\\tfrac{3}{4})=-4-6=-10\\).',
  },
  {
    topic: 'Логарифмы', difficulty: 3,
    text: 'Найдите произведение корней уравнения \\(\\log_2^2x-2\\log_2x=\\log_224-\\log_23\\), умноженное на 11.',
    options: [
      { text: '\\(44\\)', correct: true  },
      { text: '\\(22\\)', correct: false },
      { text: '\\(88\\)', correct: false },
      { text: '\\(48\\)', correct: false },
    ],
    explanation: 'Пусть \\(t=\\log_2x\\): \\(t^2-2t=3\\Rightarrow t=3\\) или \\(t=-1\\). Корни: \\(x=8,\\;x=\\tfrac{1}{2}\\). Произведение \\(=4\\). \\(4\\times11=44\\).',
  },
  {
    topic: 'Геометрия', difficulty: 3,
    text: 'Плоскость, параллельная основанию треугольной пирамиды, делит высоту в отношении \\(5:3\\) от вершины. Найдите площадь сечения, если она меньше площади основания на 39.',
    options: [
      { text: '\\(25\\)', correct: true  },
      { text: '\\(36\\)', correct: false },
      { text: '\\(16\\)', correct: false },
      { text: '\\(49\\)', correct: false },
    ],
    explanation: '\\(k=\\tfrac{5}{8}\\). \\(S_{\\text{осн}}-\\tfrac{25}{64}S_{\\text{осн}}=39\\Rightarrow S_{\\text{осн}}=64\\). \\(S_{\\text{сеч}}=25\\).',
  },
  {
    topic: 'Показательные неравенства', difficulty: 3,
    text: 'Найдите наименьшее целое решение неравенства \\(8^{2x-32}+10\\cdot4^{3x-49}>56\\).',
    options: [
      { text: '\\(17\\)', correct: true  },
      { text: '\\(16\\)', correct: false },
      { text: '\\(18\\)', correct: false },
      { text: '\\(15\\)', correct: false },
    ],
    explanation: 'Пусть \\(t=2^{6x-98}\\): \\(4t+10t>56\\Rightarrow t>4\\Rightarrow x>16{,}\\overline{6}\\). Мин. целое: 17.',
  },
  {
    topic: 'Логарифмы', difficulty: 3,
    text: 'Найдите произведение наименьшего и наибольшего целых решений неравенства \\(\\log_3^2(x+12)-\\log_3(x+12)-6<0\\).',
    options: [
      { text: '\\(-154\\)', correct: true  },
      { text: '\\(154\\)',  correct: false },
      { text: '\\(-110\\)', correct: false },
      { text: '\\(-180\\)', correct: false },
    ],
    explanation: 'Пусть \\(t=\\log_3(x+12)\\): \\(-2<t<3\\Rightarrow -11{,}88<x<15\\). Целые: от −11 до 14. \\(-11\\times14=-154\\).',
  },
  {
    topic: 'Неравенства', difficulty: 2,
    text: 'Решите неравенство \\(|2x-3|\\le7\\) и укажите число целых решений.',
    options: [
      { text: '\\(8\\)', correct: true  },
      { text: '\\(7\\)', correct: false },
      { text: '\\(9\\)', correct: false },
      { text: '\\(6\\)', correct: false },
    ],
    explanation: '\\(-7\\le2x-3\\le7\\Rightarrow-2\\le x\\le5\\). Целые: \\(-2,-1,0,1,2,3,4,5\\) — 8 чисел.',
  },

  /* ══════════════════════════════════════════════════════════════════════
     РАЗДЕЛ 2 — ЦТ 2021, Вариант 1
     ══════════════════════════════════════════════════════════════════════ */

  {
    topic: 'Геометрия', difficulty: 1, year: 2021,
    text: '[ЦТ 2021 · A1]\n\nТреугольник \\(ABC\\) — равнобедренный с основанием \\(AB\\). Угол при вершине \\(C = 56°\\). Найдите угол \\(BAC\\).',
    options: [
      { text: '62°', correct: true  },
      { text: '68°', correct: false },
      { text: '34°', correct: false },
      { text: '64°', correct: false },
      { text: '28°', correct: false },
    ],
    explanation: '\\(2\\cdot\\angle BAC=180°-56°=124°\\Rightarrow\\angle BAC=62°\\).',
  },
  {
    topic: 'Арифметика и степени', difficulty: 1, year: 2021,
    text: '[ЦТ 2021 · A2]\n\nСреди дробей \\(\\dfrac{13}{7};\\;\\dfrac{15}{7};\\;\\dfrac{30}{7};\\;\\dfrac{27}{7};\\;\\dfrac{18}{7}\\) укажите ту, которая равна \\(4\\dfrac{2}{7}\\).',
    options: [
      { text: '\\(\\dfrac{13}{7}\\)', correct: false },
      { text: '\\(\\dfrac{15}{7}\\)', correct: false },
      { text: '\\(\\dfrac{30}{7}\\)', correct: true  },
      { text: '\\(\\dfrac{27}{7}\\)', correct: false },
      { text: '\\(\\dfrac{18}{7}\\)', correct: false },
    ],
    explanation: '\\(4\\dfrac{2}{7}=\\dfrac{30}{7}\\).',
  },
  {
    topic: 'Уравнения', difficulty: 1, year: 2021,
    text: '[ЦТ 2021 · A3]\n\nУкажите пару, которая НЕ является решением \\(x+y=12\\): \\((3;9)\\), \\((-15;3)\\), \\((0;12)\\), \\((14;-2)\\), \\((6;6)\\).',
    options: [
      { text: '\\((3;9)\\)',    correct: false },
      { text: '\\((-15;3)\\)', correct: true  },
      { text: '\\((0;12)\\)',  correct: false },
      { text: '\\((14;-2)\\)', correct: false },
      { text: '\\((6;6)\\)',   correct: false },
    ],
    explanation: '\\(-15+3=-12\\neq12\\).',
  },
  {
    topic: 'Неравенства', difficulty: 1, year: 2021,
    text: '[ЦТ 2021 · A4]\n\nСреди чисел \\(-7;-11;11;-1;0\\) укажите то, которое не меньше \\(-9\\) и не больше \\(-2\\).',
    options: [
      { text: '\\(-7\\)',  correct: true  },
      { text: '\\(-11\\)', correct: false },
      { text: '\\(11\\)',  correct: false },
      { text: '\\(-1\\)',  correct: false },
      { text: '\\(0\\)',   correct: false },
    ],
    explanation: '\\(-9\\le-7\\le-2\\) — только \\(-7\\) подходит.',
  },
  {
    topic: 'Словесные задачи', difficulty: 1, year: 2021,
    text: '[ЦТ 2021 · A5]\n\nТочка \\(C\\) делит отрезок \\(AB\\) в отношении \\(5:3\\) от \\(A\\). Длина \\(AB=24\\). Найдите \\(CB\\).',
    options: [
      { text: '\\(14{,}4\\)', correct: false },
      { text: '\\(9{,}6\\)',  correct: false },
      { text: '\\(6\\)',      correct: false },
      { text: '\\(9\\)',      correct: true  },
      { text: '\\(15\\)',     correct: false },
    ],
    explanation: '\\(CB=\\dfrac{3}{8}\\cdot24=9\\).',
  },
  {
    topic: 'Словесные задачи', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · A6]\n\nВ магазин поступило 43 коробки по 110 пачек масла. Какое наименьшее количество пачек нужно продавать ежедневно, чтобы распродать за не более чем 60 дней?',
    options: [
      { text: '78', correct: false },
      { text: '81', correct: false },
      { text: '79', correct: true  },
      { text: '83', correct: false },
    ],
    explanation: '\\(43\\times110=4730\\). \\(\\lceil4730/60\\rceil=79\\).',
  },
  {
    topic: 'Функции', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · A7]\n\nНайдите количество целых \\(x\\in[-6;6]\\), при которых \\(f(x)\\le-3\\) (по графику функции).',
    options: [
      { text: '7', correct: true  },
      { text: '6', correct: false },
      { text: '5', correct: false },
      { text: '9', correct: false },
    ],
    explanation: 'По графику: 7 целых значений.',
  },
  {
    topic: 'Функции', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · A8]\n\nУпростите \\(|a-6|-|a|\\) при \\(\\dfrac{1}{6}<a<\\dfrac{3}{8}\\).',
    options: [
      { text: '\\(-6\\)',    correct: false },
      { text: '\\(2a+6\\)',  correct: false },
      { text: '\\(-2a-6\\)', correct: false },
      { text: '\\(6-2a\\)',  correct: true  },
    ],
    explanation: '\\(|a-6|=6-a\\) и \\(|a|=a\\). Результат: \\(6-a-a=6-2a\\).',
  },
  {
    topic: 'Логарифмы', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · A9]\n\nЧему равно \\(\\log_798-\\log_78+\\log_7\\dfrac{4}{7}\\)?',
    options: [
      { text: '\\(1\\)',         correct: true  },
      { text: '\\(2\\)',         correct: false },
      { text: '\\(\\log_72\\)',  correct: false },
      { text: '\\(0\\)',         correct: false },
    ],
    explanation: '\\(\\log_7\\dfrac{98\\cdot4}{8\\cdot7}=\\log_77=1\\).',
  },
  {
    topic: 'Словесные задачи', difficulty: 1, year: 2021,
    text: '[ЦТ 2021 · A10]\n\nВелосипедист в первый день проехал 52 км, во второй — на 15% меньше. Сколько км за два дня?',
    options: [
      { text: '102,4', correct: false },
      { text: '96,2',  correct: true  },
      { text: '89',    correct: false },
      { text: '88,4',  correct: false },
    ],
    explanation: '\\(52\\times0{,}85=44{,}2\\). Итого: \\(52+44{,}2=96{,}2\\).',
  },
  {
    topic: 'Уравнения', difficulty: 1, year: 2021,
    text: '[ЦТ 2021 · A11]\n\nНайдите произведение координат точки пересечения прямых \\(6x-y=4\\) и \\(y-18=0\\).',
    options: [
      { text: '4',  correct: false },
      { text: '18', correct: false },
      { text: '72', correct: false },
      { text: '66', correct: true  },
    ],
    explanation: '\\(y=18\\Rightarrow6x=22\\Rightarrow x=\\tfrac{11}{3}\\). Произведение: \\(\\tfrac{11}{3}\\cdot18=66\\).',
  },
  {
    topic: 'Функции', difficulty: 2, year: 2021, type: 'multiple',
    text: '[ЦТ 2021 · A12]\n\nУкажите номера чётных функций:\n1) \\(y=0{,}2x^2\\)\n2) \\(y=8^{\\tfrac{x^4-16}{2|x|}}\\)\n3) \\(y=-\\dfrac{3}{x}\\)\n4) \\(y=x^2-x+2\\)\n5) \\(y=\\sin2x\\)',
    options: [
      { text: '1', correct: true  },
      { text: '2', correct: true  },
      { text: '3', correct: false },
      { text: '4', correct: false },
      { text: '5', correct: false },
    ],
    explanation: '1) ✓ чётная. 2) ✓ показатель не меняется при \\(x\\to-x\\). 3) нечётная. 4) ни чётная ни нечётная. 5) нечётная.',
  },
  {
    topic: 'Геометрия', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · A13]\n\nПлощадь прямоугольного треугольника равна 2, радиус описанной окружности \\(R\\). Укажите верную формулу суммы катетов \\(a+b\\).\n1) \\(\\dfrac{R^2+4}{R}\\)\n2) \\(\\sqrt{R^2+2}\\)\n3) \\(2\\sqrt{R^2+4}\\)\n4) \\(\\dfrac{R^2+2}{R}\\)\n5) \\(2\\sqrt{R^2+2}\\)',
    options: [
      { text: '1', correct: false },
      { text: '2', correct: false },
      { text: '3', correct: false },
      { text: '4', correct: false },
      { text: '5', correct: true  },
    ],
    explanation: '\\(c=2R,\\;ab=4\\). \\((a+b)^2=4R^2+8\\Rightarrow a+b=2\\sqrt{R^2+2}\\).',
  },
  {
    topic: 'Геометрия', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · A14]\n\nПрямая треугольная призма \\(ABCA_1B_1C_1\\): \\(\\angle A=20°\\), \\(\\angle C=25°\\), радиус описанной окружности \\(\\sqrt{7}\\). Площадь грани \\(AA_1C_1C=2\\sqrt{35}\\). Найдите длину диагонали этой грани.',
    options: [
      { text: '\\(3\\sqrt{3}\\)', correct: false },
      { text: '\\(2\\sqrt{5}\\)', correct: false },
      { text: '\\(2\\sqrt{6}\\)', correct: true  },
      { text: '\\(4\\sqrt{6}\\)', correct: false },
    ],
    explanation: '\\(\\angle B=135°\\). \\(AC=\\sqrt{14}\\). \\(AA_1=\\sqrt{10}\\). Диагональ: \\(\\sqrt{14+10}=2\\sqrt{6}\\).',
  },
  {
    topic: 'Квадратные уравнения', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · A15]\n\nПараболы \\(y=2x^2+bx+c\\) с нулями \\(x=3\\) и \\(x=4\\). Найдите \\(b+c\\).',
    options: [
      { text: '12', correct: false },
      { text: '5',  correct: false },
      { text: '10', correct: true  },
      { text: '14', correct: false },
    ],
    explanation: '\\(b=-14,\\;c=24\\). \\(b+c=10\\).',
  },
  {
    topic: 'Уравнения', difficulty: 2, year: 2021, type: 'multiple',
    text: '[ЦТ 2021 · A16]\n\nУкажите номера равносильных уравнений:\n1) \\((x-6)(x+6)=0\\)\n2) \\(\\sqrt{x+10}=2\\)\n3) \\(x^2+36=0\\)\n4) \\(\\dfrac{x-x^2-5}{4}+\\dfrac{x^2-x-3}{3}=\\dfrac{1}{4}\\)\n5) \\(|x|-6=0\\)',
    options: [
      { text: '1', correct: true  },
      { text: '2', correct: false },
      { text: '3', correct: false },
      { text: '4', correct: false },
      { text: '5', correct: true  },
    ],
    explanation: 'Ур. 1 и 5 имеют одинаковые решения \\(x=\\pm6\\).',
  },
  {
    topic: 'Геометрия', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · A17]\n\nТочки \\(A\\) и \\(B\\) — соседние вершины квадрата; \\(\\Delta x=7\\), \\(\\Delta y=2\\). Найдите площадь квадрата \\(ABCD\\).',
    options: [
      { text: '37', correct: false },
      { text: '14', correct: false },
      { text: '50', correct: false },
      { text: '53', correct: true  },
    ],
    explanation: '\\(AB^2=7^2+2^2=53\\). Площадь \\(=AB^2=53\\).',
  },
  {
    topic: 'Геометрия', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · A18]\n\nПравильная четырёхугольная пирамида \\(SABCD\\), все рёбра 48. \\(M\\) — середина \\(SD\\), \\(N\\in SC\\), \\(CN:NS=1:3\\). Плоскость через \\(M,N\\), параллельная \\(SA\\), пересекает основание по отрезку длиной…',
    options: [
      { text: '\\(16\\sqrt{13}\\)', correct: false },
      { text: '\\(16\\sqrt{10}\\)', correct: true  },
      { text: '\\(8\\sqrt{37}\\)',  correct: false },
      { text: '\\(12\\sqrt{17}\\)', correct: false },
    ],
    explanation: 'Ответ: \\(16\\sqrt{10}\\).',
  },
  {
    topic: 'Статистика и диаграммы', difficulty: 1, year: 2021,
    text: '[ЦТ 2021 · B1]\n\nПо диаграмме посещений сайта (вт≈400, ср≈440, чт≈260, пт≈280, сб≈640, вс≈650) установите соответствие:\n\nА) В какой день было на 20 посещений больше предыдущего?\nБ) В какой день — на 35% меньше вторника?\nВ) В какой день — на 10% больше предыдущего?',
    options: [
      { text: 'А4Б3В2', correct: true  },
      { text: 'А2Б3В4', correct: false },
      { text: 'А4Б2В3', correct: false },
      { text: 'А3Б4В2', correct: false },
    ],
    explanation: 'А) пятница(+20 от чт)→4; Б) 400×0,65=260=чт→3; В) 400×1,1=440=ср→2. Ответ: А4Б3В2.',
  },
  {
    topic: 'Тригонометрия', difficulty: 3, year: 2021, type: 'multiple',
    text: '[ЦТ 2021 · B2]\n\nВыберите три верных утверждения:\n1) если \\(\\cos(\\arccos a)=\\cos(\\arccos\\tfrac{1}{18})\\), то \\(a=\\tfrac{1}{18}\\)\n2) если \\(\\cos a=-\\cos\\tfrac{\\pi}{18}\\), то \\(\\arccos(\\cos a)=-\\tfrac{\\pi}{18}\\)\n3) если \\(\\sin a=\\sin\\tfrac{17\\pi}{18}\\), то \\(\\arcsin(\\sin a)=\\tfrac{17\\pi}{18}\\)\n4) если \\(\\arccos a=\\tfrac{\\pi}{18}\\), то \\(a=\\cos\\tfrac{\\pi}{18}\\)\n5) если \\(\\sin a=\\sin\\tfrac{\\pi}{18}\\), то \\(a=-\\tfrac{\\pi}{18}\\)\n6) если \\(a=\\tfrac{\\pi}{18}\\) и \\(\\sin a=\\sin\\tfrac{\\pi}{18}\\), то \\(\\arcsin(\\sin a)=\\tfrac{\\pi}{18}\\)',
    options: [
      { text: '1', correct: true  },
      { text: '2', correct: false },
      { text: '3', correct: false },
      { text: '4', correct: true  },
      { text: '5', correct: false },
      { text: '6', correct: true  },
    ],
    explanation: '1) ✓, 4) ✓ по определению arccos, 6) ✓ т.к. \\(\\tfrac{\\pi}{18}\\in[-\\tfrac{\\pi}{2};\\tfrac{\\pi}{2}]\\).',
  },
  {
    topic: 'Геометрия', difficulty: 3, year: 2021, type: 'multiple',
    text: '[ЦТ 2021 · B3]\n\nПлоскости \\(\\alpha\\perp\\beta\\), пересекаются по \\(a\\), точка \\(A\\in\\beta\\). Выберите три верных утверждения:\n1) любая прямая через A, пересекающая α, пересекает a\n2) единственная прямая через A ⊥ α\n3) прямая через A ⊥ β тоже ⊥ α\n4) любая точка a ∈ α и β\n5) любая прямая в α ⊥ a тоже ⊥ β\n6) любая прямая ⊥ a принадлежит β',
    options: [
      { text: '1', correct: true  },
      { text: '2', correct: false },
      { text: '3', correct: false },
      { text: '4', correct: true  },
      { text: '5', correct: true  },
      { text: '6', correct: false },
    ],
    explanation: '1) ✓, 4) ✓ — по определению линии пересечения, 5) ✓ — признак перпендикулярности плоскостей.',
  },
  {
    topic: 'Словесные задачи', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · B4]\n\nНа пастбище (квадрат) загон для скота занимает \\(\\tfrac{1}{32}\\) площади пастбища. Найдите площадь загона (в м²), если по рисунку ширина пастбища связана с размером загона.',
    options: [
      { text: '800',  correct: true  },
      { text: '640',  correct: false },
      { text: '900',  correct: false },
      { text: '1000', correct: false },
    ],
    explanation: '\\(S_{\\text{паст}}=32\\cdot S_{\\text{загон}}\\). При \\(a^2=800\\): площадь загона = 800 м².',
  },
  {
    topic: 'Арифметика и степени', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · B5]\n\nНайдите \\(\\sqrt{8}\\cdot\\sqrt[3]{-7}\\cdot\\sqrt{32}\\cdot\\sqrt[3]{49}-7\\cdot\\dfrac{\\sqrt[3]{64}}{-2}\\).',
    options: [
      { text: '\\(-98\\)',  correct: true  },
      { text: '\\(-126\\)', correct: false },
      { text: '\\(-84\\)',  correct: false },
      { text: '\\(-70\\)',  correct: false },
    ],
    explanation: '\\(\\sqrt{8}\\cdot\\sqrt{32}=16\\). \\(\\sqrt[3]{-7\\cdot49}=-7\\). Первое: \\(-112\\). Второе: \\(7\\cdot4/(-2)=-14\\). \\(-112-(-14)=-98\\).',
  },
  {
    topic: 'Геометрия', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · B6]\n\nПлощадь боковой поверхности цилиндра \\(=15\\pi\\), радиус на 3,5 больше высоты. Найдите \\(\\dfrac{6V}{\\pi}\\).',
    options: [
      { text: '225', correct: true  },
      { text: '150', correct: false },
      { text: '300', correct: false },
      { text: '180', correct: false },
    ],
    explanation: '\\(rh=7{,}5,\\;r=h+3{,}5\\Rightarrow h=1{,}5,\\;r=5\\). \\(V=37{,}5\\pi\\). \\(6V/\\pi=225\\).',
  },
  {
    topic: 'Тригонометрия', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · B7]\n\nРешите \\(\\sqrt{3}\\cos\\!\\left(\\dfrac{5\\pi}{18}+\\pi x\\right)=-1{,}5\\). Найдите: 3 × наибольший корень на [3;9] × количество корней на [3;9].',
    options: [
      { text: '160', correct: true  },
      { text: '120', correct: false },
      { text: '200', correct: false },
      { text: '90',  correct: false },
    ],
    explanation: 'На [3;9]: 6 корней, \\(x_{\\max}=\\tfrac{80}{9}\\). Ответ: \\(3\\cdot\\tfrac{80}{9}\\cdot6=160\\).',
  },
  {
    topic: 'Логарифмы', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · B8]\n\nНайдите сумму всех целых решений \\(\\log_{0{,}3}\\log_{4{,}7}(2^{x+9{,}1}-1)\\ge0\\).',
    options: [
      { text: '\\(-15\\)', correct: true  },
      { text: '\\(-10\\)', correct: false },
      { text: '\\(-21\\)', correct: false },
      { text: '\\(-6\\)',  correct: false },
    ],
    explanation: 'Целые решения: \\(x=-8\\) и \\(x=-7\\). Сумма: \\(-15\\).',
  },
  {
    topic: 'Геометрия', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · B9]\n\n\\(AC\\) — общая гипотенуза прямоугольных треугольников \\(ABC\\) и \\(ADC\\), плоскости ⊥. \\(AB=9\\sqrt{3}\\), \\(BC=9\\sqrt{5}\\), \\(AD=DC\\). Найдите \\(BD^2\\).',
    options: [
      { text: '324', correct: true  },
      { text: '256', correct: false },
      { text: '400', correct: false },
      { text: '289', correct: false },
    ],
    explanation: '\\(AC=18\\sqrt{2}\\), \\(AD=18\\). \\(BD^2=324\\).',
  },
  {
    topic: 'Прогрессии', difficulty: 2, year: 2021,
    text: '[ЦТ 2021 · B10]\n\n\\(a_n=2n^2-15n\\). Найдите наименьший член \\(a_m\\) и его номер \\(m\\). Запишите \\(m\\cdot a_m\\).',
    options: [
      { text: '\\(-112\\)', correct: true  },
      { text: '\\(-98\\)',  correct: false },
      { text: '\\(-128\\)', correct: false },
      { text: '\\(-80\\)',  correct: false },
    ],
    explanation: '\\(a_4=-28\\) — минимум. \\(4\\times(-28)=-112\\).',
  },
  {
    topic: 'Уравнения', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · B11]\n\nНайдите \\(25\\cdot(x_1^2+x_2^2)\\), где \\(x_1,x_2\\) — корни уравнения \\(10\\sqrt{\\dfrac{x^2}{14+5x-x^2}}-2\\sqrt{\\dfrac{14+5x-x^2}{x^2}}=19\\).',
    options: [
      { text: '960',  correct: true  },
      { text: '800',  correct: false },
      { text: '1200', correct: false },
      { text: '750',  correct: false },
    ],
    explanation: '\\(t=2\\Rightarrow5x^2-20x-56=0\\). \\(x_1^2+x_2^2=\\tfrac{192}{5}\\). \\(25\\cdot\\tfrac{192}{5}=960\\).',
  },
  {
    topic: 'Геометрия', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · B12]\n\nПрямая через вершину \\(K\\) треугольника \\(KMN\\) делит медиану \\(MA\\) в отношении \\(8:3\\) от \\(M\\) и пересекает \\(MN\\) в точке \\(B\\). \\(S_{KMB}=16\\). Найдите \\(S_{KMN}\\).',
    options: [
      { text: '28', correct: true  },
      { text: '24', correct: false },
      { text: '32', correct: false },
      { text: '36', correct: false },
    ],
    explanation: '\\(MB:BN=8:3\\Rightarrow MN/MB=11/8\\). \\(S_{KMN}=28\\).',
  },
  {
    topic: 'Теория чисел', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · B13]\n\nПетя записал два различных натуральных числа, сложил, перемножил, вычел меньшее из большего, разделил большее на меньшее. Сумма четырёх результатов = 1521. Найдите сумму всех таких пар.',
    options: [
      { text: '460', correct: true  },
      { text: '390', correct: false },
      { text: '520', correct: false },
      { text: '410', correct: false },
    ],
    explanation: 'Пары: (108,12) и (338,2). Суммы: 120+340=460.',
  },
  {
    topic: 'Геометрия', difficulty: 3, year: 2021,
    text: '[ЦТ 2021 · B14]\n\nПирамида \\(SABCD\\): \\(AO=9\\), \\(OC=16\\), \\(BO=OD=12\\), диагонали ⊥. Вершина \\(S\\) удалена на \\(\\tfrac{61}{7}\\) от каждой стороны основания. Через середину высоты параллельно основанию проведена плоскость. Найдите \\(10\\cdot V_{\\text{большей части}}\\).',
    options: [
      { text: '1375', correct: true  },
      { text: '1250', correct: false },
      { text: '1500', correct: false },
      { text: '1100', correct: false },
    ],
    explanation: '\\(S_{ABCD}=300\\), \\(h=\\tfrac{11}{7}\\), \\(V=\\tfrac{1100}{7}\\). Большая часть: \\(\\tfrac{1925}{14}\\). \\(10V=1375\\).',
  },
];

/* ── Вставка (идемпотентно — пропускать уже существующие) ─────────────── */
let inserted = 0, skipped = 0;
const checkQ  = db.prepare('SELECT id FROM questions WHERE subject_id=? AND text=?');
const insertQ = db.prepare(
  'INSERT INTO questions (subject_id, topic_id, text, difficulty, year, explanation, type) VALUES (?,?,?,?,?,?,?)'
);
const insertO = db.prepare(
  'INSERT INTO options (question_id, text, is_correct, order_index) VALUES (?,?,?,?)'
);

db.exec('BEGIN');
try {
  for (const q of questions) {
    if (checkQ.get(SID, q.text)) { skipped++; continue; }
    const topicId = getOrCreateTopic(SID, q.topic);
    const { lastInsertRowid: qid } = insertQ.run(
      SID, topicId, q.text, q.difficulty,
      q.year || null, q.explanation || null, q.type || 'single'
    );
    q.options.forEach((o, i) => insertO.run(qid, o.text, o.correct ? 1 : 0, i));
    inserted++;
  }
  db.exec('COMMIT');
  console.log(`✓ math: вставлено ${inserted}, пропущено ${skipped} (уже было).`);
} catch (err) {
  db.exec('ROLLBACK');
  console.error('Ошибка:', err.message);
  process.exit(1);
}
