/**
 * Seed: Физика — базовый уровень (~97 вопросов)
 * Темы: кинематика, динамика, законы сохранения, МФТ, термодинамика,
 *       электростатика, постоянный ток, магнетизм, ЭМИ, оптика, квантовая физика
 * Run: node src/db/seed-phys.js  (из папки backend)
 */
'use strict';
const db = require('./db');

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

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

/* ═════════════════════════════════════════════════════════════════════════
   Формат вопроса:
   { topic, difficulty (1–3), type, text, options: [{text, correct}], explanation }
   source_type = 'базовый' (добавляется автоматически)
═════════════════════════════════════════════════════════════════════════ */
const questions = [

  /* ══════════════════════════════════════════════════════════════════════
     КИНЕМАТИКА
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Кинематика', difficulty: 1, type: 'single',
    text: 'Тело движется равномерно со скоростью 72 км/ч. Какой путь пройдёт тело за 5 минут?',
    options: [
      { text: '6000 м', correct: true  },
      { text: '360 м',  correct: false },
      { text: '600 м',  correct: false },
      { text: '7200 м', correct: false },
    ],
    explanation: '\\(v = 72\\,\\text{км/ч} = 20\\,\\text{м/с}\\);  \\(t = 5\\cdot60 = 300\\,\\text{с}\\);  \\(s = vt = 20\\cdot300 = 6000\\,\\text{м}\\).',
  },
  {
    topic: 'Кинематика', difficulty: 1, type: 'single',
    text: 'Автомобиль равноускоренно разгоняется от 0 до 30 м/с за 10 с. Чему равно ускорение автомобиля?',
    options: [
      { text: '3 м/с²',   correct: true  },
      { text: '0,3 м/с²', correct: false },
      { text: '30 м/с²',  correct: false },
      { text: '300 м/с²', correct: false },
    ],
    explanation: '\\(a = \\dfrac{v - v_0}{t} = \\dfrac{30 - 0}{10} = 3\\,\\text{м/с}^2\\).',
  },
  {
    topic: 'Кинематика', difficulty: 1, type: 'single',
    text: 'Тело свободно падает с высоты 80 м (\\(g = 10\\) м/с²). С какой скоростью оно ударится о землю?',
    options: [
      { text: '40 м/с', correct: true  },
      { text: '20 м/с', correct: false },
      { text: '80 м/с', correct: false },
      { text: '4 м/с',  correct: false },
    ],
    explanation: '\\(v = \\sqrt{2gh} = \\sqrt{2\\cdot10\\cdot80} = \\sqrt{1600} = 40\\,\\text{м/с}\\).',
  },
  {
    topic: 'Кинематика', difficulty: 1, type: 'single',
    text: 'Тело брошено горизонтально со скоростью 10 м/с с высоты 45 м (\\(g = 10\\) м/с²). Время полёта равно:',
    options: [
      { text: '3 с',   correct: true  },
      { text: '4,5 с', correct: false },
      { text: '9 с',   correct: false },
      { text: '1,5 с', correct: false },
    ],
    explanation: '\\(h = \\dfrac{gt^2}{2}\\)  ⟹  \\(t = \\sqrt{\\dfrac{2h}{g}} = \\sqrt{\\dfrac{90}{10}} = 3\\,\\text{с}\\).',
  },
  {
    topic: 'Кинематика', difficulty: 1, type: 'single',
    text: 'Тело движется по окружности радиусом 5 м с угловой скоростью 4 рад/с. Линейная скорость тела равна:',
    options: [
      { text: '20 м/с',   correct: true  },
      { text: '0,8 м/с',  correct: false },
      { text: '1,25 м/с', correct: false },
      { text: '4 м/с',    correct: false },
    ],
    explanation: '\\(v = \\omega R = 4\\cdot5 = 20\\,\\text{м/с}\\).',
  },
  {
    topic: 'Кинематика', difficulty: 2, type: 'single',
    text: 'Тело начало движение из покоя с постоянным ускорением 2 м/с² и прошло путь 100 м. Скорость тела в конце пути:',
    options: [
      { text: '20 м/с',       correct: true  },
      { text: '10 м/с',       correct: false },
      { text: '\\(\\sqrt{200}\\) м/с', correct: false },
      { text: '400 м/с',      correct: false },
    ],
    explanation: '\\(v^2 = 2as = 2\\cdot2\\cdot100 = 400\\)  ⟹  \\(v = 20\\,\\text{м/с}\\).',
  },
  {
    topic: 'Кинематика', difficulty: 2, type: 'single',
    text: 'Тело брошено вертикально вверх с начальной скоростью 30 м/с (\\(g = 10\\) м/с²). Максимальная высота подъёма:',
    options: [
      { text: '45 м', correct: true  },
      { text: '30 м', correct: false },
      { text: '90 м', correct: false },
      { text: '15 м', correct: false },
    ],
    explanation: '\\(H = \\dfrac{v_0^2}{2g} = \\dfrac{900}{20} = 45\\,\\text{м}\\).',
  },
  {
    topic: 'Кинематика', difficulty: 2, type: 'single',
    text: 'Два поезда движутся навстречу: скорости 54 км/ч и 36 км/ч. Начальное расстояние 2700 м. Через сколько секунд они встретятся?',
    options: [
      { text: '108 с', correct: true  },
      { text: '50 с',  correct: false },
      { text: '75 с',  correct: false },
      { text: '30 с',  correct: false },
    ],
    explanation: '\\(v_\\text{сближ} = 54+36 = 90\\,\\text{км/ч} = 25\\,\\text{м/с}\\);  \\(t = \\dfrac{2700}{25} = 108\\,\\text{с}\\).',
  },
  {
    topic: 'Кинематика', difficulty: 2, type: 'single',
    text: 'Тело движется по окружности радиусом 0,5 м со скоростью 3 м/с. Центростремительное ускорение:',
    options: [
      { text: '18 м/с²', correct: true  },
      { text: '6 м/с²',  correct: false },
      { text: '9 м/с²',  correct: false },
      { text: '1,5 м/с²', correct: false },
    ],
    explanation: '\\(a_\\text{цс} = \\dfrac{v^2}{R} = \\dfrac{9}{0{,}5} = 18\\,\\text{м/с}^2\\).',
  },
  {
    topic: 'Кинематика', difficulty: 3, type: 'single',
    text: 'Тело движется из покоя с ускорением 4 м/с². Путь, пройденный за 4-ю секунду:',
    options: [
      { text: '14 м', correct: true  },
      { text: '32 м', correct: false },
      { text: '28 м', correct: false },
      { text: '16 м', correct: false },
    ],
    explanation: 'Путь за \\(n\\)-ю секунду: \\(s_n = \\dfrac{a(2n-1)}{2} = \\dfrac{4\\cdot7}{2} = 14\\,\\text{м}\\).',
  },

  /* ══════════════════════════════════════════════════════════════════════
     ДИНАМИКА
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Динамика', difficulty: 1, type: 'single',
    text: 'На тело массой 5 кг действует сила 20 Н. Ускорение тела равно:',
    options: [
      { text: '4 м/с²',    correct: true  },
      { text: '100 м/с²',  correct: false },
      { text: '0,25 м/с²', correct: false },
      { text: '25 м/с²',   correct: false },
    ],
    explanation: '\\(a = \\dfrac{F}{m} = \\dfrac{20}{5} = 4\\,\\text{м/с}^2\\).',
  },
  {
    topic: 'Динамика', difficulty: 1, type: 'single',
    text: 'Тело массой 200 г движется с ускорением 5 м/с². Результирующая сила:',
    options: [
      { text: '1 Н',    correct: true  },
      { text: '0,04 Н', correct: false },
      { text: '25 Н',   correct: false },
      { text: '40 Н',   correct: false },
    ],
    explanation: '\\(F = ma = 0{,}2\\cdot5 = 1\\,\\text{Н}\\).',
  },
  {
    topic: 'Динамика', difficulty: 1, type: 'single',
    text: 'При увеличении расстояния между двумя телами в 3 раза сила взаимного тяготения:',
    options: [
      { text: 'уменьшится в 9 раз', correct: true  },
      { text: 'уменьшится в 3 раза', correct: false },
      { text: 'увеличится в 3 раза', correct: false },
      { text: 'не изменится',        correct: false },
    ],
    explanation: 'По закону тяготения \\(F \\propto 1/r^2\\). При \\(r \\to 3r\\): \\(F \\to F/9\\).',
  },
  {
    topic: 'Динамика', difficulty: 2, type: 'single',
    text: 'Тело массой 3 кг на горизонтальной поверхности тянут горизонтальной силой 15 Н. Коэффициент трения \\(\\mu = 0{,}2\\), \\(g = 10\\) м/с². Ускорение тела:',
    options: [
      { text: '3 м/с²', correct: true  },
      { text: '5 м/с²', correct: false },
      { text: '2 м/с²', correct: false },
      { text: '1 м/с²', correct: false },
    ],
    explanation: '\\(F_\\text{тр} = \\mu mg = 0{,}2\\cdot3\\cdot10 = 6\\,\\text{Н}\\);  \\(F_\\text{рез} = 15-6 = 9\\,\\text{Н}\\);  \\(a = 9/3 = 3\\,\\text{м/с}^2\\).',
  },
  {
    topic: 'Динамика', difficulty: 2, type: 'single',
    text: 'Тело движется по наклонной плоскости под углом \\(\\alpha = 30°\\) без трения (\\(g = 10\\) м/с²). Ускорение вдоль наклонной плоскости:',
    options: [
      { text: '5 м/с²',    correct: true  },
      { text: '10 м/с²',   correct: false },
      { text: '8,66 м/с²', correct: false },
      { text: '2,5 м/с²',  correct: false },
    ],
    explanation: '\\(a = g\\sin\\alpha = 10\\cdot\\sin30° = 10\\cdot0{,}5 = 5\\,\\text{м/с}^2\\).',
  },
  {
    topic: 'Динамика', difficulty: 2, type: 'single',
    text: 'Тело массой 0,5 кг движется по окружности радиусом 2 м со скоростью 4 м/с. Центростремительная сила:',
    options: [
      { text: '4 Н', correct: true  },
      { text: '1 Н', correct: false },
      { text: '8 Н', correct: false },
      { text: '2 Н', correct: false },
    ],
    explanation: '\\(F = \\dfrac{mv^2}{R} = \\dfrac{0{,}5\\cdot16}{2} = 4\\,\\text{Н}\\).',
  },
  {
    topic: 'Динамика', difficulty: 2, type: 'single',
    text: 'Автомобиль массой 1000 кг проезжает поворот радиусом 20 м. Максимальная скорость без бокового скольжения (\\(\\mu = 0{,}5\\), \\(g = 10\\) м/с²):',
    options: [
      { text: '10 м/с', correct: true  },
      { text: '5 м/с',  correct: false },
      { text: '20 м/с', correct: false },
      { text: '14 м/с', correct: false },
    ],
    explanation: '\\(\\dfrac{mv^2}{R} = \\mu mg\\)  ⟹  \\(v = \\sqrt{\\mu gR} = \\sqrt{0{,}5\\cdot10\\cdot20} = \\sqrt{100} = 10\\,\\text{м/с}\\).',
  },
  {
    topic: 'Динамика', difficulty: 3, type: 'single',
    text: 'Тело массой 4 кг лежит на горизонтальной поверхности (\\(\\mu = 0{,}3\\), \\(g = 10\\) м/с²). Приложена горизонтальная сила \\(F = 24\\) Н. Путь за первые 3 с (начиная из покоя):',
    options: [
      { text: '13,5 м', correct: true  },
      { text: '18 м',   correct: false },
      { text: '9 м',    correct: false },
      { text: '27 м',   correct: false },
    ],
    explanation: '\\(F_\\text{тр} = 0{,}3\\cdot4\\cdot10 = 12\\,\\text{Н}\\);  \\(a = (24-12)/4 = 3\\,\\text{м/с}^2\\);  \\(s = \\frac12 at^2 = \\frac12\\cdot3\\cdot9 = 13{,}5\\,\\text{м}\\).',
  },
  {
    topic: 'Динамика', difficulty: 3, type: 'single',
    text: 'Тело на наклонной плоскости с углом \\(\\alpha = 45°\\). При каком коэффициенте трения тело будет оставаться неподвижным?',
    options: [
      { text: '\\(\\mu \\geq \\tan 45° = 1\\)', correct: true  },
      { text: '\\(\\mu \\geq 0{,}5\\)',         correct: false },
      { text: '\\(\\mu \\geq \\cos 45°\\)',      correct: false },
      { text: 'при любом \\(\\mu > 0\\)',        correct: false },
    ],
    explanation: 'Тело удерживается, если \\(F_\\text{тр} \\geq mg\\sin\\alpha\\), т.е. \\(\\mu mg\\cos\\alpha \\geq mg\\sin\\alpha\\)  ⟹  \\(\\mu \\geq \\tan\\alpha = \\tan45° = 1\\).',
  },
  {
    topic: 'Динамика', difficulty: 2, type: 'single',
    text: 'Ракета выбросила газы за 1 с общей массой 20 кг со скоростью 500 м/с. Тяга двигателя (реактивная сила):',
    options: [
      { text: '10 000 Н', correct: true  },
      { text: '500 Н',    correct: false },
      { text: '25 Н',     correct: false },
      { text: '20 Н',     correct: false },
    ],
    explanation: 'По третьему закону Ньютона: \\(F = \\dfrac{\\Delta m}{\\Delta t}\\cdot v = 20\\cdot500 = 10\\,000\\,\\text{Н}\\).',
  },

  /* ══════════════════════════════════════════════════════════════════════
     ЗАКОНЫ СОХРАНЕНИЯ
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Законы сохранения', difficulty: 1, type: 'single',
    text: 'Тело массой 4 кг движется со скоростью 5 м/с. Импульс тела:',
    options: [
      { text: '20 кг·м/с',   correct: true  },
      { text: '0,8 кг·м/с',  correct: false },
      { text: '80 кг·м/с',   correct: false },
      { text: '1,25 кг·м/с', correct: false },
    ],
    explanation: '\\(p = mv = 4\\cdot5 = 20\\,\\text{кг}\\cdot\\text{м/с}\\).',
  },
  {
    topic: 'Законы сохранения', difficulty: 1, type: 'single',
    text: 'Тело массой 2 кг поднято на высоту 10 м (\\(g = 10\\) м/с²). Потенциальная энергия тела:',
    options: [
      { text: '200 Дж',  correct: true  },
      { text: '20 Дж',   correct: false },
      { text: '2000 Дж', correct: false },
      { text: '100 Дж',  correct: false },
    ],
    explanation: '\\(E_\\text{п} = mgh = 2\\cdot10\\cdot10 = 200\\,\\text{Дж}\\).',
  },
  {
    topic: 'Законы сохранения', difficulty: 1, type: 'single',
    text: 'Тело массой 2 кг движется со скоростью 10 м/с. Кинетическая энергия тела:',
    options: [
      { text: '100 Дж', correct: true  },
      { text: '20 Дж',  correct: false },
      { text: '200 Дж', correct: false },
      { text: '10 Дж',  correct: false },
    ],
    explanation: '\\(E_\\text{к} = \\dfrac{mv^2}{2} = \\dfrac{2\\cdot100}{2} = 100\\,\\text{Дж}\\).',
  },
  {
    topic: 'Законы сохранения', difficulty: 1, type: 'single',
    text: 'Сила 40 Н перемещает тело на 5 м вдоль линии действия силы. Совершённая работа:',
    options: [
      { text: '200 Дж', correct: true  },
      { text: '8 Дж',   correct: false },
      { text: '45 Дж',  correct: false },
      { text: '20 Дж',  correct: false },
    ],
    explanation: '\\(A = Fs = 40\\cdot5 = 200\\,\\text{Дж}\\).',
  },
  {
    topic: 'Законы сохранения', difficulty: 2, type: 'single',
    text: 'Тело скользит с горки высотой 5 м без трения (\\(g = 10\\) м/с²). Скорость у основания:',
    options: [
      { text: '10 м/с', correct: true  },
      { text: '5 м/с',  correct: false },
      { text: '50 м/с', correct: false },
      { text: '1 м/с',  correct: false },
    ],
    explanation: '\\(mgh = \\dfrac{mv^2}{2}\\)  ⟹  \\(v = \\sqrt{2gh} = \\sqrt{100} = 10\\,\\text{м/с}\\).',
  },
  {
    topic: 'Законы сохранения', difficulty: 2, type: 'single',
    text: 'Машина совершила работу 600 Дж за 1 мин. Мощность машины:',
    options: [
      { text: '10 Вт',    correct: true  },
      { text: '36 кВт',   correct: false },
      { text: '0,167 Вт', correct: false },
      { text: '100 Вт',   correct: false },
    ],
    explanation: '\\(P = \\dfrac{A}{t} = \\dfrac{600}{60} = 10\\,\\text{Вт}\\).',
  },
  {
    topic: 'Законы сохранения', difficulty: 2, type: 'single',
    text: 'Пуля массой 10 г летит со скоростью 500 м/с и застревает в неподвижном блоке массой 990 г. Скорость системы после удара:',
    options: [
      { text: '5 м/с',   correct: true  },
      { text: '0,5 м/с', correct: false },
      { text: '50 м/с',  correct: false },
      { text: '50 км/ч', correct: false },
    ],
    explanation: '\\(p = 0{,}010\\cdot500 = 5\\,\\text{кг}\\cdot\\text{м/с}\\);  \\(M = 0{,}010+0{,}990 = 1\\,\\text{кг}\\);  \\(v_2 = p/M = 5\\,\\text{м/с}\\).',
  },
  {
    topic: 'Законы сохранения', difficulty: 3, type: 'single',
    text: 'Снаряд массой 6 кг, летевший горизонтально со скоростью 200 м/с, разрывается на два осколка. Первый осколок (2 кг) полетел со скоростью 100 м/с в том же направлении. Скорость второго осколка (4 кг):',
    options: [
      { text: '250 м/с', correct: true  },
      { text: '350 м/с', correct: false },
      { text: '300 м/с', correct: false },
      { text: '200 м/с', correct: false },
    ],
    explanation: '\\(p = 6\\cdot200 = 1200\\,\\text{кг}\\cdot\\text{м/с}\\);  \\(p_1 = 2\\cdot100 = 200\\);  \\(p_2 = 1000\\);  \\(v_2 = 1000/4 = 250\\,\\text{м/с}\\).',
  },

  /* ══════════════════════════════════════════════════════════════════════
     МОЛЕКУЛЯРНАЯ ФИЗИКА
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Молекулярная физика', difficulty: 1, type: 'single',
    text: 'Абсолютная температура соответствует \\(t = 27°C\\):',
    options: [
      { text: '300 К', correct: true  },
      { text: '246 К', correct: false },
      { text: '27 К',  correct: false },
      { text: '373 К', correct: false },
    ],
    explanation: '\\(T = t + 273 = 27 + 273 = 300\\,\\text{К}\\).',
  },
  {
    topic: 'Молекулярная физика', difficulty: 1, type: 'single',
    text: 'При изотермическом сжатии идеального газа объём уменьшился в 2 раза. Давление газа:',
    options: [
      { text: 'увеличилось в 2 раза', correct: true  },
      { text: 'уменьшилось в 2 раза', correct: false },
      { text: 'не изменилось',        correct: false },
      { text: 'увеличилось в 4 раза', correct: false },
    ],
    explanation: '\\(pV = \\text{const}\\) при изотермическом процессе. Объём вдвое меньше ⟹ давление вдвое больше.',
  },
  {
    topic: 'Молекулярная физика', difficulty: 1, type: 'single',
    text: 'Молярная масса молекулярного кислорода \\(O_2\\):',
    options: [
      { text: '32 г/моль', correct: true  },
      { text: '16 г/моль', correct: false },
      { text: '8 г/моль',  correct: false },
      { text: '64 г/моль', correct: false },
    ],
    explanation: 'Атомная масса кислорода \\(A_r(O) = 16\\). Молекула двухатомная: \\(M = 2\\cdot16 = 32\\,\\text{г/моль}\\).',
  },
  {
    topic: 'Молекулярная физика', difficulty: 2, type: 'single',
    text: 'Идеальный газ нагревают при постоянном давлении с \\(T_1 = 200\\) К до \\(T_2 = 600\\) К. Объём изменится:',
    options: [
      { text: 'увеличится в 3 раза', correct: true  },
      { text: 'уменьшится в 3 раза', correct: false },
      { text: 'увеличится в 9 раз',  correct: false },
      { text: 'не изменится',        correct: false },
    ],
    explanation: 'Закон Гей-Люссака: \\(V \\propto T\\) при \\(p = \\text{const}\\).  \\(\\dfrac{V_2}{V_1} = \\dfrac{T_2}{T_1} = \\dfrac{600}{200} = 3\\).',
  },
  {
    topic: 'Молекулярная физика', difficulty: 2, type: 'single',
    text: 'Газ при 27°C имеет объём 4 л. При нагреве до 57°C при постоянном давлении объём стал:',
    options: [
      { text: '4,4 л', correct: true  },
      { text: '8 л',   correct: false },
      { text: '3,6 л', correct: false },
      { text: '4 л',   correct: false },
    ],
    explanation: '\\(T_1 = 300\\,\\text{К},\\; T_2 = 330\\,\\text{К}\\).  \\(V_2 = V_1\\cdot\\dfrac{T_2}{T_1} = 4\\cdot\\dfrac{330}{300} = 4{,}4\\,\\text{л}\\).',
  },
  {
    topic: 'Молекулярная физика', difficulty: 2, type: 'single',
    text: 'Масса одной молекулы воды \\(H_2O\\) (\\(M = 18\\) г/моль, \\(N_A = 6{,}02\\cdot10^{23}\\)):',
    options: [
      { text: '\\(3\\cdot10^{-26}\\) кг',   correct: true  },
      { text: '\\(18\\cdot10^{-23}\\) кг', correct: false },
      { text: '\\(3\\cdot10^{-23}\\) кг',  correct: false },
      { text: '\\(6\\cdot10^{-26}\\) кг',  correct: false },
    ],
    explanation: '\\(m = \\dfrac{M}{N_A} = \\dfrac{18\\cdot10^{-3}}{6{,}02\\cdot10^{23}} \\approx 3\\cdot10^{-26}\\,\\text{кг}\\).',
  },
  {
    topic: 'Молекулярная физика', difficulty: 3, type: 'single',
    text: 'Давление газа в цилиндре \\(1{,}5\\cdot10^5\\) Па, объём 3 л. После изотермического сжатия до 2 л давление стало:',
    options: [
      { text: '\\(2{,}25\\cdot10^5\\) Па', correct: true  },
      { text: '\\(10^5\\) Па',              correct: false },
      { text: '\\(3\\cdot10^5\\) Па',        correct: false },
      { text: '\\(2\\cdot10^5\\) Па',        correct: false },
    ],
    explanation: '\\(p_1 V_1 = p_2 V_2\\)  ⟹  \\(p_2 = \\dfrac{p_1 V_1}{V_2} = \\dfrac{1{,}5\\cdot10^5\\cdot3}{2} = 2{,}25\\cdot10^5\\,\\text{Па}\\).',
  },
  {
    topic: 'Молекулярная физика', difficulty: 2, type: 'single',
    text: 'Газ нагревают при постоянном объёме с 27°C до 127°C. Давление изменится:',
    options: [
      { text: 'увеличится в \\(\\tfrac43\\) раза', correct: true  },
      { text: 'увеличится вдвое',                  correct: false },
      { text: 'уменьшится',                         correct: false },
      { text: 'не изменится',                       correct: false },
    ],
    explanation: 'Закон Шарля: \\(p \\propto T\\) при \\(V = \\text{const}\\).  \\(T_1=300\\,\\text{К},\\; T_2=400\\,\\text{К}\\);  \\(\\dfrac{p_2}{p_1}=\\dfrac{400}{300}=\\dfrac{4}{3}\\).',
  },

  /* ══════════════════════════════════════════════════════════════════════
     ТЕРМОДИНАМИКА
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Термодинамика', difficulty: 1, type: 'single',
    text: 'Тепловая машина получила от нагревателя 5000 Дж и совершила работу 1500 Дж. КПД машины:',
    options: [
      { text: '30%', correct: true  },
      { text: '70%', correct: false },
      { text: '15%', correct: false },
      { text: '3%',  correct: false },
    ],
    explanation: '\\(\\eta = \\dfrac{A}{Q_1} = \\dfrac{1500}{5000} = 0{,}30 = 30\\%\\).',
  },
  {
    topic: 'Термодинамика', difficulty: 1, type: 'single',
    text: 'Теплота при нагреве воды массой 500 г на 20°C (\\(c = 4200\\) Дж/(кг·К)):',
    options: [
      { text: '42 кДж',   correct: true  },
      { text: '4200 Дж',  correct: false },
      { text: '840 Дж',   correct: false },
      { text: '420 кДж',  correct: false },
    ],
    explanation: '\\(Q = mc\\Delta T = 0{,}5\\cdot4200\\cdot20 = 42\\,000\\,\\text{Дж} = 42\\,\\text{кДж}\\).',
  },
  {
    topic: 'Термодинамика', difficulty: 2, type: 'single',
    text: 'Газу сообщено 800 Дж теплоты, он совершил работу 500 Дж. Изменение внутренней энергии:',
    options: [
      { text: '300 Дж',   correct: true  },
      { text: '1300 Дж',  correct: false },
      { text: '−300 Дж',  correct: false },
      { text: '800 Дж',   correct: false },
    ],
    explanation: 'Первое начало термодинамики: \\(\\Delta U = Q - A = 800 - 500 = 300\\,\\text{Дж}\\).',
  },
  {
    topic: 'Термодинамика', difficulty: 2, type: 'single',
    text: 'КПД идеальной тепловой машины при \\(T_1 = 800\\) К и \\(T_2 = 200\\) К:',
    options: [
      { text: '75%', correct: true  },
      { text: '25%', correct: false },
      { text: '50%', correct: false },
      { text: '80%', correct: false },
    ],
    explanation: '\\(\\eta_\\text{Карно} = 1 - \\dfrac{T_2}{T_1} = 1 - \\dfrac{200}{800} = 0{,}75 = 75\\%\\).',
  },
  {
    topic: 'Термодинамика', difficulty: 2, type: 'single',
    text: 'При изобарном нагреве газа температура выросла с 300 К до 400 К, объём был 6 л. Новый объём:',
    options: [
      { text: '8 л',   correct: true  },
      { text: '4,5 л', correct: false },
      { text: '4 л',   correct: false },
      { text: '6 л',   correct: false },
    ],
    explanation: '\\(V_2 = V_1\\cdot\\dfrac{T_2}{T_1} = 6\\cdot\\dfrac{400}{300} = 8\\,\\text{л}\\).',
  },
  {
    topic: 'Термодинамика', difficulty: 3, type: 'single',
    text: 'Двигатель внутреннего сгорания сжигает 5 кг бензина (теплота сгорания \\(q = 46\\) МДж/кг) и совершает полезную работу 46 МДж. КПД двигателя:',
    options: [
      { text: '20%', correct: true  },
      { text: '10%', correct: false },
      { text: '46%', correct: false },
      { text: '50%', correct: false },
    ],
    explanation: '\\(Q = mq = 5\\cdot46 = 230\\,\\text{МДж}\\);  \\(\\eta = \\dfrac{A}{Q} = \\dfrac{46}{230} = 0{,}2 = 20\\%\\).',
  },

  /* ══════════════════════════════════════════════════════════════════════
     ЭЛЕКТРОСТАТИКА
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Электростатика', difficulty: 1, type: 'single',
    text: 'Два точечных заряда \\(q_1 = q_2 = 2\\) мкКл расположены на расстоянии 0,3 м друг от друга (\\(k = 9\\cdot10^9\\) Н·м²/Кл²). Сила их взаимодействия:',
    options: [
      { text: '0,4 Н',  correct: true  },
      { text: '4 Н',    correct: false },
      { text: '0,04 Н', correct: false },
      { text: '40 Н',   correct: false },
    ],
    explanation: '\\(F = k\\dfrac{q_1 q_2}{r^2} = 9\\cdot10^9\\cdot\\dfrac{4\\cdot10^{-12}}{0{,}09} = 0{,}4\\,\\text{Н}\\).',
  },
  {
    topic: 'Электростатика', difficulty: 1, type: 'single',
    text: 'Напряжённость поля точечного заряда \\(10\\) нКл на расстоянии 1 м (\\(k = 9\\cdot10^9\\)):',
    options: [
      { text: '90 В/м',  correct: true  },
      { text: '9 В/м',   correct: false },
      { text: '900 В/м', correct: false },
      { text: '9 кВ/м',  correct: false },
    ],
    explanation: '\\(E = k\\dfrac{q}{r^2} = 9\\cdot10^9\\cdot\\dfrac{10\\cdot10^{-9}}{1} = 90\\,\\text{В/м}\\).',
  },
  {
    topic: 'Электростатика', difficulty: 1, type: 'single',
    text: 'Расстояние между пластинами конденсатора 5 мм, напряжение 100 В. Напряжённость поля между пластинами:',
    options: [
      { text: '20 кВ/м', correct: true  },
      { text: '0,5 кВ/м', correct: false },
      { text: '2 кВ/м',   correct: false },
      { text: '200 кВ/м', correct: false },
    ],
    explanation: '\\(E = \\dfrac{U}{d} = \\dfrac{100}{5\\cdot10^{-3}} = 20\\,000\\,\\text{В/м} = 20\\,\\text{кВ/м}\\).',
  },
  {
    topic: 'Электростатика', difficulty: 1, type: 'single',
    text: 'Конденсатор ёмкостью 10 мкФ заряжен до 50 В. Заряд конденсатора:',
    options: [
      { text: '\\(5\\cdot10^{-4}\\) Кл', correct: true  },
      { text: '5 Кл',                    correct: false },
      { text: '\\(5\\cdot10^{-7}\\) Кл', correct: false },
      { text: '200 мКл',                 correct: false },
    ],
    explanation: '\\(Q = CU = 10\\cdot10^{-6}\\cdot50 = 5\\cdot10^{-4}\\,\\text{Кл}\\).',
  },
  {
    topic: 'Электростатика', difficulty: 2, type: 'single',
    text: 'Работа по перемещению заряда \\(q = 3\\) Кл из точки с потенциалом 100 В в точку с потенциалом 40 В:',
    options: [
      { text: '180 Дж', correct: true  },
      { text: '60 Дж',  correct: false },
      { text: '300 Дж', correct: false },
      { text: '420 Дж', correct: false },
    ],
    explanation: '\\(A = q(\\varphi_1 - \\varphi_2) = 3\\cdot(100-40) = 180\\,\\text{Дж}\\).',
  },
  {
    topic: 'Электростатика', difficulty: 2, type: 'single',
    text: 'Два конденсатора \\(C_1 = 4\\) мкФ и \\(C_2 = 12\\) мкФ включены последовательно. Эквивалентная ёмкость:',
    options: [
      { text: '3 мкФ',  correct: true  },
      { text: '16 мкФ', correct: false },
      { text: '48 мкФ', correct: false },
      { text: '8 мкФ',  correct: false },
    ],
    explanation: '\\(\\dfrac{1}{C} = \\dfrac{1}{4} + \\dfrac{1}{12} = \\dfrac{4}{12}\\)  ⟹  \\(C = 3\\,\\text{мкФ}\\).',
  },
  {
    topic: 'Электростатика', difficulty: 2, type: 'single',
    text: 'Два конденсатора \\(C_1 = 4\\) мкФ и \\(C_2 = 6\\) мкФ включены параллельно. Эквивалентная ёмкость:',
    options: [
      { text: '10 мкФ',  correct: true  },
      { text: '2,4 мкФ', correct: false },
      { text: '24 мкФ',  correct: false },
      { text: '5 мкФ',   correct: false },
    ],
    explanation: '\\(C = C_1 + C_2 = 4 + 6 = 10\\,\\text{мкФ}\\).',
  },
  {
    topic: 'Электростатика', difficulty: 2, type: 'single',
    text: 'Энергия, запасённая в конденсаторе \\(C = 5\\) мкФ при напряжении \\(U = 200\\) В:',
    options: [
      { text: '0,1 Дж',  correct: true  },
      { text: '0,05 Дж', correct: false },
      { text: '1 Дж',    correct: false },
      { text: '0,2 Дж',  correct: false },
    ],
    explanation: '\\(W = \\dfrac{CU^2}{2} = \\dfrac{5\\cdot10^{-6}\\cdot40000}{2} = 0{,}1\\,\\text{Дж}\\).',
  },
  {
    topic: 'Электростатика', difficulty: 3, type: 'single',
    text: 'Заряженный конденсатор отключили от батареи, затем раздвинули пластины вдвое. Энергия конденсатора:',
    options: [
      { text: 'увеличилась в 2 раза', correct: true  },
      { text: 'уменьшилась в 2 раза', correct: false },
      { text: 'не изменилась',        correct: false },
      { text: 'увеличилась в 4 раза', correct: false },
    ],
    explanation: 'Заряд \\(Q = \\text{const}\\). При \\(d \\to 2d\\): \\(C \\to C/2\\).  \\(W = Q^2/(2C)\\)  ⟹  \\(W \\to 2W\\).',
  },
  {
    topic: 'Электростатика', difficulty: 3, type: 'single',
    text: 'При уменьшении расстояния между зарядами в 4 раза сила их взаимодействия:',
    options: [
      { text: 'увеличится в 16 раз', correct: true  },
      { text: 'увеличится в 4 раза', correct: false },
      { text: 'уменьшится в 4 раза', correct: false },
      { text: 'уменьшится в 16 раз', correct: false },
    ],
    explanation: '\\(F \\propto 1/r^2\\). При \\(r \\to r/4\\): \\(F \\to 16F\\).',
  },

  /* ══════════════════════════════════════════════════════════════════════
     ПОСТОЯННЫЙ ТОК
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Постоянный ток', difficulty: 1, type: 'single',
    text: 'Сопротивление резистора 8 Ом, напряжение на нём 24 В. Сила тока через резистор:',
    options: [
      { text: '3 А',    correct: true  },
      { text: '192 А',  correct: false },
      { text: '0,33 А', correct: false },
      { text: '8 А',    correct: false },
    ],
    explanation: '\\(I = \\dfrac{U}{R} = \\dfrac{24}{8} = 3\\,\\text{А}\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 1, type: 'single',
    text: 'Три одинаковых резистора по \\(R = 6\\) Ом включены последовательно. Общее сопротивление:',
    options: [
      { text: '18 Ом', correct: true  },
      { text: '2 Ом',  correct: false },
      { text: '6 Ом',  correct: false },
      { text: '9 Ом',  correct: false },
    ],
    explanation: '\\(R_\\Sigma = 3R = 3\\cdot6 = 18\\,\\text{Ом}\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 1, type: 'single',
    text: 'Три одинаковых резистора по \\(R = 9\\) Ом включены параллельно. Общее сопротивление:',
    options: [
      { text: '3 Ом',  correct: true  },
      { text: '27 Ом', correct: false },
      { text: '9 Ом',  correct: false },
      { text: '1 Ом',  correct: false },
    ],
    explanation: 'Для \\(n\\) одинаковых резисторов параллельно: \\(R_\\Sigma = R/n = 9/3 = 3\\,\\text{Ом}\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 1, type: 'single',
    text: 'Источник с ЭДС = 12 В, внутреннее сопротивление \\(r = 2\\) Ом, внешнее \\(R = 4\\) Ом. Ток в цепи:',
    options: [
      { text: '2 А', correct: true  },
      { text: '3 А', correct: false },
      { text: '6 А', correct: false },
      { text: '1 А', correct: false },
    ],
    explanation: '\\(I = \\dfrac{\\varepsilon}{R+r} = \\dfrac{12}{4+2} = 2\\,\\text{А}\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 2, type: 'single',
    text: 'Электрическая плитка мощностью 2 кВт работала 30 мин. Потреблённая энергия:',
    options: [
      { text: '1 кВт·ч',    correct: true  },
      { text: '60 кВт·ч',   correct: false },
      { text: '0,5 кВт·ч',  correct: false },
      { text: '3,6 кДж',    correct: false },
    ],
    explanation: '\\(W = Pt = 2\\,\\text{кВт}\\cdot0{,}5\\,\\text{ч} = 1\\,\\text{кВт·ч}\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 2, type: 'single',
    text: 'Ток 4 А течёт через резистор 5 Ом в течение 5 минут. Выделенная теплота:',
    options: [
      { text: '24 кДж',  correct: true  },
      { text: '2,4 кДж', correct: false },
      { text: '240 кДж', correct: false },
      { text: '6 кДж',   correct: false },
    ],
    explanation: '\\(Q = I^2 R t = 16\\cdot5\\cdot300 = 24\\,000\\,\\text{Дж} = 24\\,\\text{кДж}\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 2, type: 'single',
    text: 'Лампочка мощностью 100 Вт рассчитана на 220 В. Её сопротивление нити накала:',
    options: [
      { text: '484 Ом',   correct: true  },
      { text: '22000 Ом', correct: false },
      { text: '0,45 Ом',  correct: false },
      { text: '22 Ом',    correct: false },
    ],
    explanation: '\\(R = \\dfrac{U^2}{P} = \\dfrac{220^2}{100} = \\dfrac{48400}{100} = 484\\,\\text{Ом}\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 2, type: 'single',
    text: 'Напряжение на зажимах источника 10 В при токе 2 А, ЭДС = 12 В. Внутреннее сопротивление источника:',
    options: [
      { text: '1 Ом',  correct: true  },
      { text: '6 Ом',  correct: false },
      { text: '5 Ом',  correct: false },
      { text: '11 Ом', correct: false },
    ],
    explanation: '\\(r = \\dfrac{\\varepsilon - U}{I} = \\dfrac{12-10}{2} = 1\\,\\text{Ом}\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 2, type: 'single',
    text: 'КПД источника тока при \\(\\varepsilon = 15\\) В, \\(r = 1\\) Ом, \\(R = 4\\) Ом:',
    options: [
      { text: '80%', correct: true  },
      { text: '20%', correct: false },
      { text: '75%', correct: false },
      { text: '60%', correct: false },
    ],
    explanation: '\\(\\eta = \\dfrac{R}{R+r} = \\dfrac{4}{5} = 80\\%\\).',
  },
  {
    topic: 'Постоянный ток', difficulty: 3, type: 'single',
    text: 'Два резистора \\(R_1 = 6\\) Ом и \\(R_2 = 3\\) Ом включены параллельно к источнику 12 В. Ток через \\(R_1\\):',
    options: [
      { text: '2 А', correct: true  },
      { text: '4 А', correct: false },
      { text: '6 А', correct: false },
      { text: '1 А', correct: false },
    ],
    explanation: 'Напряжение на каждом резисторе 12 В (параллельное соединение).  \\(I_1 = U/R_1 = 12/6 = 2\\,\\text{А}\\).',
  },

  /* ══════════════════════════════════════════════════════════════════════
     МАГНЕТИЗМ
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Магнетизм', difficulty: 1, type: 'single',
    text: 'Сила Ампера, действующая на прямолинейный проводник длиной 0,5 м с током 4 А в поле \\(B = 0{,}3\\) Тл (проводник перпендикулярен полю):',
    options: [
      { text: '0,6 Н', correct: true  },
      { text: '6 Н',   correct: false },
      { text: '0,06 Н', correct: false },
      { text: '6,7 Н', correct: false },
    ],
    explanation: '\\(F = BIl\\sin90° = 0{,}3\\cdot4\\cdot0{,}5 = 0{,}6\\,\\text{Н}\\).',
  },
  {
    topic: 'Магнетизм', difficulty: 2, type: 'single',
    text: 'Сила Лоренца на электрон (\\(q = 1{,}6\\cdot10^{-19}\\) Кл), движущийся в поле \\(B = 0{,}2\\) Тл со скоростью \\(5\\cdot10^6\\) м/с (перпендикулярно полю):',
    options: [
      { text: '\\(1{,}6\\cdot10^{-13}\\) Н', correct: true  },
      { text: '\\(1{,}6\\cdot10^{-12}\\) Н', correct: false },
      { text: '\\(1{,}6\\cdot10^{-14}\\) Н', correct: false },
      { text: '\\(5\\cdot10^{-26}\\) Н',      correct: false },
    ],
    explanation: '\\(F = qvB = 1{,}6\\cdot10^{-19}\\cdot5\\cdot10^6\\cdot0{,}2 = 1{,}6\\cdot10^{-13}\\,\\text{Н}\\).',
  },
  {
    topic: 'Магнетизм', difficulty: 2, type: 'single',
    text: 'Если ток в проводнике увеличить в 2 раза и индукцию поля увеличить в 2 раза, сила Ампера:',
    options: [
      { text: 'увеличится в 4 раза', correct: true  },
      { text: 'увеличится в 2 раза', correct: false },
      { text: 'не изменится',        correct: false },
      { text: 'уменьшится в 4 раза', correct: false },
    ],
    explanation: '\\(F = BIl\\)  ⟹  \\(F \\propto BI\\). При \\(B \\to 2B,\\; I \\to 2I\\): \\(F \\to 4F\\).',
  },
  {
    topic: 'Магнетизм', difficulty: 2, type: 'single',
    text: 'Магнитный поток через контур площадью 0,2 м² в однородном поле \\(B = 0{,}5\\) Тл при \\(\\theta = 0°\\) (нормаль вдоль поля):',
    options: [
      { text: '0,1 Вб',  correct: true  },
      { text: '0,04 Вб', correct: false },
      { text: '0,5 Вб',  correct: false },
      { text: '0,25 Вб', correct: false },
    ],
    explanation: '\\(\\Phi = BS\\cos\\theta = 0{,}5\\cdot0{,}2\\cdot\\cos0° = 0{,}1\\,\\text{Вб}\\).',
  },
  {
    topic: 'Магнетизм', difficulty: 2, type: 'single',
    text: 'Правило «буравчика» (правой руки) применяется для нахождения:',
    options: [
      { text: 'направления вектора магнитной индукции прямолинейного тока',     correct: true  },
      { text: 'направления силы Ампера',                                         correct: false },
      { text: 'направления индукционного тока',                                  correct: false },
      { text: 'направления силы Лоренца на положительный заряд',                correct: false },
    ],
    explanation: 'Правило буравчика: если вращать рукоятку буравчика в направлении тока в соленоиде, поступательное движение укажет направление \\(\\vec{B}\\). Для прямого тока: пальцы правой руки по \\(\\vec{B}\\), большой — ток.',
  },
  {
    topic: 'Магнетизм', difficulty: 3, type: 'single',
    text: 'Протон (\\(m = 1{,}67\\cdot10^{-27}\\) кг, \\(q = 1{,}6\\cdot10^{-19}\\) Кл) движется в поле \\(B = 0{,}1\\) Тл со скоростью \\(2\\cdot10^7\\) м/с. Радиус круговой траектории:',
    options: [
      { text: '≈ 2,1 м',  correct: true  },
      { text: '≈ 0,21 м', correct: false },
      { text: '≈ 21 м',   correct: false },
      { text: '≈ 0,021 м', correct: false },
    ],
    explanation: '\\(r = \\dfrac{mv}{qB} = \\dfrac{1{,}67\\cdot10^{-27}\\cdot2\\cdot10^7}{1{,}6\\cdot10^{-19}\\cdot0{,}1} \\approx 2{,}09\\,\\text{м}\\).',
  },
  {
    topic: 'Магнетизм', difficulty: 3, type: 'single',
    text: 'При одновременном увеличении тока в проводнике в 3 раза и расстояния до него в 3 раза, индукция магнитного поля прямого тока:',
    options: [
      { text: 'не изменится',        correct: true  },
      { text: 'увеличится в 3 раза', correct: false },
      { text: 'уменьшится в 3 раза', correct: false },
      { text: 'увеличится в 9 раз',  correct: false },
    ],
    explanation: '\\(B \\propto I/r\\). При \\(I \\to 3I,\\; r \\to 3r\\): \\(B \\to (3I)/(3r) = I/r = B\\).',
  },

  /* ══════════════════════════════════════════════════════════════════════
     ЭЛЕКТРОМАГНИТНАЯ ИНДУКЦИЯ
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Электромагнитная индукция', difficulty: 1, type: 'single',
    text: 'Магнитный поток через контур изменился с 0,6 Вб до 0,1 Вб за 0,1 с. ЭДС индукции:',
    options: [
      { text: '5 В',   correct: true  },
      { text: '0,5 В', correct: false },
      { text: '50 В',  correct: false },
      { text: '7 В',   correct: false },
    ],
    explanation: '\\(\\varepsilon = \\left|\\dfrac{\\Delta\\Phi}{\\Delta t}\\right| = \\dfrac{0{,}5}{0{,}1} = 5\\,\\text{В}\\).',
  },
  {
    topic: 'Электромагнитная индукция', difficulty: 1, type: 'single',
    text: 'Трансформатор: первичная обмотка 1000 витков, вторичная 50 витков, \\(U_1 = 220\\) В. Напряжение на вторичной обмотке:',
    options: [
      { text: '11 В',   correct: true  },
      { text: '4400 В', correct: false },
      { text: '110 В',  correct: false },
      { text: '55 В',   correct: false },
    ],
    explanation: '\\(\\dfrac{U_2}{U_1} = \\dfrac{n_2}{n_1}\\)  ⟹  \\(U_2 = 220\\cdot\\dfrac{50}{1000} = 11\\,\\text{В}\\).',
  },
  {
    topic: 'Электромагнитная индукция', difficulty: 2, type: 'single',
    text: 'ЭДС самоиндукции катушки с \\(L = 0{,}5\\) Гн при изменении тока от 0 до 4 А за 0,2 с:',
    options: [
      { text: '10 В',  correct: true  },
      { text: '1 В',   correct: false },
      { text: '40 В',  correct: false },
      { text: '2,5 В', correct: false },
    ],
    explanation: '\\(\\varepsilon = L\\dfrac{\\Delta I}{\\Delta t} = 0{,}5\\cdot\\dfrac{4}{0{,}2} = 10\\,\\text{В}\\).',
  },
  {
    topic: 'Электромагнитная индукция', difficulty: 2, type: 'single',
    text: 'Частота переменного тока 50 Гц. Период:',
    options: [
      { text: '0,02 с', correct: true  },
      { text: '50 с',   correct: false },
      { text: '0,2 с',  correct: false },
      { text: '0,002 с', correct: false },
    ],
    explanation: '\\(T = \\dfrac{1}{f} = \\dfrac{1}{50} = 0{,}02\\,\\text{с}\\).',
  },
  {
    topic: 'Электромагнитная индукция', difficulty: 2, type: 'single',
    text: 'Колебательный контур: \\(L = 0{,}1\\) Гн, \\(C = 10\\) мкФ. Период колебаний:',
    options: [
      { text: '≈ 6,3 мс',   correct: true  },
      { text: '≈ 62,8 мс',  correct: false },
      { text: '≈ 0,63 мс',  correct: false },
      { text: '≈ 1 мс',     correct: false },
    ],
    explanation: '\\(T = 2\\pi\\sqrt{LC} = 2\\pi\\sqrt{0{,}1\\cdot10^{-5}} = 2\\pi\\cdot10^{-3} \\approx 6{,}28\\,\\text{мс}\\).',
  },
  {
    topic: 'Электромагнитная индукция', difficulty: 3, type: 'single',
    text: 'Трансформатор повышает напряжение с 220 В до 11 000 В. Первичная обмотка 400 витков, ток 50 А. Ток во вторичной обмотке (идеальный трансформатор):',
    options: [
      { text: '1 А',    correct: true  },
      { text: '2500 А', correct: false },
      { text: '0,1 А',  correct: false },
      { text: '10 А',   correct: false },
    ],
    explanation: '\\(\\dfrac{U_2}{U_1} = \\dfrac{I_1}{I_2}\\)  ⟹  \\(I_2 = I_1\\cdot\\dfrac{U_1}{U_2} = 50\\cdot\\dfrac{220}{11000} = 1\\,\\text{А}\\).',
  },
  {
    topic: 'Электромагнитная индукция', difficulty: 3, type: 'single',
    text: 'Правило Ленца: индукционный ток в контуре всегда направлен так, что его магнитное поле:',
    options: [
      { text: 'препятствует изменению магнитного потока, его вызвавшего',          correct: true  },
      { text: 'совпадает по направлению с изменением внешнего магнитного потока',  correct: false },
      { text: 'перпендикулярно внешнему магнитному полю',                          correct: false },
      { text: 'не зависит от скорости изменения магнитного потока',               correct: false },
    ],
    explanation: 'Правило Ленца — проявление закона сохранения энергии: индукционный ток создаёт поле, направленное против изменения потока, т.е. препятствует его изменению.',
  },

  /* ══════════════════════════════════════════════════════════════════════
     ОПТИКА
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Оптика', difficulty: 1, type: 'single',
    text: 'Луч света падает на плоское зеркало, образуя угол 35° с поверхностью зеркала. Угол отражения равен:',
    options: [
      { text: '55°', correct: true  },
      { text: '35°', correct: false },
      { text: '70°', correct: false },
      { text: '90°', correct: false },
    ],
    explanation: 'Углы падения и отражения отсчитываются от нормали. Угол с поверхностью 35° → угол с нормалью 90° − 35° = 55°. По закону отражения угол отражения = 55°.',
  },
  {
    topic: 'Оптика', difficulty: 1, type: 'single',
    text: 'Линза с оптической силой 5 дптр. Фокусное расстояние:',
    options: [
      { text: '20 см', correct: true  },
      { text: '5 см',  correct: false },
      { text: '50 см', correct: false },
      { text: '2 м',   correct: false },
    ],
    explanation: '\\(F = \\dfrac{1}{D} = \\dfrac{1}{5} = 0{,}2\\,\\text{м} = 20\\,\\text{см}\\).',
  },
  {
    topic: 'Оптика', difficulty: 2, type: 'single',
    text: 'Предмет на расстоянии 30 см от тонкой собирающей линзы с \\(F = 20\\) см. Расстояние до изображения:',
    options: [
      { text: '60 см', correct: true  },
      { text: '12 см', correct: false },
      { text: '30 см', correct: false },
      { text: '50 см', correct: false },
    ],
    explanation: '\\(\\dfrac{1}{F} = \\dfrac{1}{d_0} + \\dfrac{1}{d_i}\\)  ⟹  \\(\\dfrac{1}{d_i} = \\dfrac{1}{20} - \\dfrac{1}{30} = \\dfrac{1}{60}\\)  ⟹  \\(d_i = 60\\,\\text{см}\\).',
  },
  {
    topic: 'Оптика', difficulty: 2, type: 'single',
    text: 'Две щели шириной \\(d = 1\\) мм, экран на расстоянии \\(L = 2\\) м, длина волны \\(\\lambda = 500\\) нм. Расстояние между соседними максимумами:',
    options: [
      { text: '1 мм',   correct: true  },
      { text: '0,1 мм', correct: false },
      { text: '5 мм',   correct: false },
      { text: '0,5 мм', correct: false },
    ],
    explanation: '\\(\\Delta y = \\dfrac{\\lambda L}{d} = \\dfrac{500\\cdot10^{-9}\\cdot2}{10^{-3}} = 10^{-3}\\,\\text{м} = 1\\,\\text{мм}\\).',
  },
  {
    topic: 'Оптика', difficulty: 2, type: 'single',
    text: 'Показатель преломления стекла \\(n = 1{,}5\\). Критический угол полного внутреннего отражения:',
    options: [
      { text: '≈ 42°', correct: true  },
      { text: '≈ 48°', correct: false },
      { text: '≈ 30°', correct: false },
      { text: '≈ 60°', correct: false },
    ],
    explanation: '\\(\\sin\\theta_\\text{кр} = \\dfrac{1}{n} = \\dfrac{1}{1{,}5} = 0{,}667\\)  ⟹  \\(\\theta_\\text{кр} \\approx 41{,}8° \\approx 42°\\).',
  },
  {
    topic: 'Оптика', difficulty: 3, type: 'single',
    text: 'Луч переходит из воздуха в стекло с \\(n = 1{,}73\\). Угол падения 60°. Угол преломления:',
    options: [
      { text: '30°', correct: true  },
      { text: '60°', correct: false },
      { text: '45°', correct: false },
      { text: '20°', correct: false },
    ],
    explanation: '\\(\\sin\\beta = \\dfrac{\\sin\\alpha}{n} = \\dfrac{\\sin60°}{1{,}73} = \\dfrac{\\sqrt{3}/2}{\\sqrt{3}} = 0{,}5\\)  ⟹  \\(\\beta = 30°\\).',
  },
  {
    topic: 'Оптика', difficulty: 2, type: 'single',
    text: 'Скорость света в воде с \\(n = 1{,}33\\):',
    options: [
      { text: '≈ 2,26·10⁸ м/с', correct: true  },
      { text: '≈ 4·10⁸ м/с',    correct: false },
      { text: '≈ 1·10⁸ м/с',    correct: false },
      { text: '3·10⁸ м/с',      correct: false },
    ],
    explanation: '\\(v = \\dfrac{c}{n} = \\dfrac{3\\cdot10^8}{1{,}33} \\approx 2{,}26\\cdot10^8\\,\\text{м/с}\\).',
  },
  {
    topic: 'Оптика', difficulty: 1, type: 'single',
    text: 'Какой цвет видимого спектра имеет наибольшую длину волны?',
    options: [
      { text: 'Красный',   correct: true  },
      { text: 'Жёлтый',   correct: false },
      { text: 'Зелёный',  correct: false },
      { text: 'Фиолетовый', correct: false },
    ],
    explanation: 'Видимый спектр: красный (~700 нм) > оранжевый > жёлтый > зелёный > голубой > синий > фиолетовый (~400 нм). Красный — наибольшая длина волны.',
  },

  /* ══════════════════════════════════════════════════════════════════════
     КВАНТОВАЯ ФИЗИКА И ЯДЕРНАЯ
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Квантовая и ядерная физика', difficulty: 1, type: 'single',
    text: 'Энергия фотона при частоте \\(\\nu = 6\\cdot10^{14}\\) Гц (\\(h = 6{,}63\\cdot10^{-34}\\) Дж·с):',
    options: [
      { text: '≈ 4·10⁻¹⁹ Дж', correct: true  },
      { text: '≈ 4·10⁻²⁰ Дж', correct: false },
      { text: '≈ 4·10⁻¹⁸ Дж', correct: false },
      { text: '≈ 10⁻³³ Дж',   correct: false },
    ],
    explanation: '\\(E = h\\nu = 6{,}63\\cdot10^{-34}\\cdot6\\cdot10^{14} \\approx 3{,}98\\cdot10^{-19}\\,\\text{Дж} \\approx 4\\cdot10^{-19}\\,\\text{Дж}\\).',
  },
  {
    topic: 'Квантовая и ядерная физика', difficulty: 1, type: 'single',
    text: 'Период полураспада изотопа 20 лет. Через 40 лет от начального количества \\(N_0\\) останется:',
    options: [
      { text: '\\(N_0/4 = 25\\%\\)',  correct: true  },
      { text: '\\(N_0/2 = 50\\%\\)',  correct: false },
      { text: '\\(N_0/8 = 12{,}5\\%\\)', correct: false },
      { text: '0',                    correct: false },
    ],
    explanation: '\\(N = N_0\\left(\\tfrac12\\right)^{40/20} = N_0\\left(\\tfrac12\\right)^2 = \\dfrac{N_0}{4}\\).',
  },
  {
    topic: 'Квантовая и ядерная физика', difficulty: 1, type: 'single',
    text: 'При \\(\\alpha\\)-распаде ядра \\(^{238}_{92}U\\) образуется:',
    options: [
      { text: '\\(^{234}_{90}\\text{Th}\\)', correct: true  },
      { text: '\\(^{234}_{91}\\text{Pa}\\)', correct: false },
      { text: '\\(^{238}_{90}\\text{Th}\\)', correct: false },
      { text: '\\(^{232}_{88}\\text{Ra}\\)', correct: false },
    ],
    explanation: 'При \\(\\alpha\\)-распаде: \\(Z \\to Z-2\\), \\(A \\to A-4\\).  \\(Z=92-2=90\\) (торий), \\(A=238-4=234\\).',
  },
  {
    topic: 'Квантовая и ядерная физика', difficulty: 2, type: 'single',
    text: 'Фотоэффект: металл облучают светом с частотой \\(\\nu = 7{,}5\\cdot10^{14}\\) Гц. Работа выхода \\(A = 3\\cdot10^{-19}\\) Дж (\\(h = 6\\cdot10^{-34}\\) Дж·с). Максимальная кинетическая энергия электрона:',
    options: [
      { text: '\\(1{,}5\\cdot10^{-19}\\) Дж', correct: true  },
      { text: '\\(7{,}5\\cdot10^{-19}\\) Дж', correct: false },
      { text: '\\(4{,}5\\cdot10^{-19}\\) Дж', correct: false },
      { text: '\\(3\\cdot10^{-19}\\) Дж',      correct: false },
    ],
    explanation: '\\(E_k = h\\nu - A = 6\\cdot10^{-34}\\cdot7{,}5\\cdot10^{14} - 3\\cdot10^{-19} = 4{,}5\\cdot10^{-19} - 3\\cdot10^{-19} = 1{,}5\\cdot10^{-19}\\,\\text{Дж}\\).',
  },
  {
    topic: 'Квантовая и ядерная физика', difficulty: 2, type: 'single',
    text: 'Какое излучение обладает наибольшей проникающей способностью?',
    options: [
      { text: 'Гамма-излучение (\\(\\gamma\\))', correct: true  },
      { text: 'Альфа-излучение (\\(\\alpha\\))', correct: false },
      { text: 'Бета-излучение (\\(\\beta\\))',   correct: false },
      { text: 'Ультрафиолетовое',               correct: false },
    ],
    explanation: '\\(\\gamma\\)-кванты — наиболее проникающее излучение, поглощаются только толстым слоем свинца или бетона. \\(\\alpha\\) — поглощается листом бумаги, \\(\\beta\\) — несколькими мм алюминия.',
  },
  {
    topic: 'Квантовая и ядерная физика', difficulty: 2, type: 'single',
    text: 'В ядерной реакции \\(^1_1H + ^7_3Li \\to 2\\,^4_2He\\):',
    options: [
      { text: 'выполняются законы сохранения массового числа и заряда', correct: true  },
      { text: 'нарушается закон сохранения заряда',                    correct: false },
      { text: 'нарушается закон сохранения массового числа',           correct: false },
      { text: 'нарушаются оба закона сохранения',                      correct: false },
    ],
    explanation: '\\(A\\!:\\; 1+7=8=2\\cdot4\\)  ✓;  \\(Z\\!:\\; 1+3=4=2\\cdot2\\)  ✓. Оба закона выполняются.',
  },
  {
    topic: 'Квантовая и ядерная физика', difficulty: 2, type: 'single',
    text: 'Период полураспада радия 1600 лет. Через сколько лет активность препарата уменьшится в 4 раза?',
    options: [
      { text: '3200 лет', correct: true  },
      { text: '400 лет',  correct: false },
      { text: '800 лет',  correct: false },
      { text: '6400 лет', correct: false },
    ],
    explanation: '\\(\\dfrac{N}{N_0} = \\left(\\tfrac12\\right)^{t/T} = \\dfrac{1}{4} = \\left(\\tfrac12\\right)^2\\)  ⟹  \\(t = 2T = 2\\cdot1600 = 3200\\,\\text{лет}\\).',
  },
  {
    topic: 'Квантовая и ядерная физика', difficulty: 3, type: 'single',
    text: 'Какое излучение НЕ отклоняется магнитным полем?',
    options: [
      { text: 'Гамма-излучение',            correct: true  },
      { text: 'Альфа-излучение',            correct: false },
      { text: 'Бета-излучение',             correct: false },
      { text: 'Пучок протонов',             correct: false },
    ],
    explanation: '\\(\\gamma\\)-кванты — электромагнитные волны, не несут заряда, поэтому магнитным полем не отклоняются. \\(\\alpha\\) и \\(\\beta\\) — заряженные частицы, отклоняются.',
  },

  /* ══════════════════════════════════════════════════════════════════════
     КОЛЕБАНИЯ И ВОЛНЫ
  ══════════════════════════════════════════════════════════════════════ */
  {
    topic: 'Колебания и волны', difficulty: 1, type: 'single',
    text: 'Маятник совершает 10 полных колебаний за 20 с. Частота колебаний:',
    options: [
      { text: '0,5 Гц', correct: true  },
      { text: '2 Гц',   correct: false },
      { text: '20 Гц',  correct: false },
      { text: '0,2 Гц', correct: false },
    ],
    explanation: '\\(f = \\dfrac{N}{t} = \\dfrac{10}{20} = 0{,}5\\,\\text{Гц}\\).',
  },
  {
    topic: 'Колебания и волны', difficulty: 1, type: 'single',
    text: 'Скорость звука в воздухе 340 м/с. Длина волны при частоте 1700 Гц:',
    options: [
      { text: '0,2 м = 20 см', correct: true  },
      { text: '0,02 м',        correct: false },
      { text: '2 м',           correct: false },
      { text: '0,578 м',       correct: false },
    ],
    explanation: '\\(\\lambda = \\dfrac{v}{f} = \\dfrac{340}{1700} = 0{,}2\\,\\text{м}\\).',
  },
  {
    topic: 'Колебания и волны', difficulty: 2, type: 'single',
    text: 'Математический маятник длиной \\(L = 1\\) м (\\(g = 10\\) м/с²). Период колебаний:',
    options: [
      { text: '≈ 2 с',   correct: true  },
      { text: '≈ 1 с',   correct: false },
      { text: '≈ 4 с',   correct: false },
      { text: '≈ 0,5 с', correct: false },
    ],
    explanation: '\\(T = 2\\pi\\sqrt{\\dfrac{L}{g}} = 2\\pi\\sqrt{\\dfrac{1}{10}} = \\dfrac{2\\pi}{\\sqrt{10}} \\approx 1{,}99\\,\\text{с} \\approx 2\\,\\text{с}\\).',
  },
  {
    topic: 'Колебания и волны', difficulty: 2, type: 'single',
    text: 'Маятник с периодом 2 с. При уменьшении его длины в 4 раза период станет:',
    options: [
      { text: '1 с',   correct: true  },
      { text: '0,5 с', correct: false },
      { text: '4 с',   correct: false },
      { text: '8 с',   correct: false },
    ],
    explanation: '\\(T \\propto \\sqrt{L}\\). При \\(L \\to L/4\\): \\(T \\to T/2 = 1\\,\\text{с}\\).',
  },
  {
    topic: 'Колебания и волны', difficulty: 3, type: 'single',
    text: 'Два маятника с периодами 2 с и 3 с начинают колебаться одновременно. Через сколько секунд они впервые окажутся в одинаковой фазе?',
    options: [
      { text: '6 с',  correct: true  },
      { text: '3 с',  correct: false },
      { text: '12 с', correct: false },
      { text: '1 с',  correct: false },
    ],
    explanation: 'Нужно наименьшее общее кратное периодов: \\(\\text{НОК}(2,\\,3) = 6\\,\\text{с}\\).',
  },
];

/* ── insert ─────────────────────────────────────────────────────────── */
const insertQ = db.prepare(
  'INSERT INTO questions (subject_id, topic_id, text, difficulty, year, explanation, type, image, source_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'
);
const insertO = db.prepare(
  'INSERT INTO options (question_id, text, is_correct, order_index) VALUES (?, ?, ?, ?)'
);

let inserted = 0, skipped = 0;
const checkQ = db.prepare('SELECT id FROM questions WHERE subject_id = ? AND text = ?');
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', null, 'базовый'
    );
    q.options.forEach((o, i) => insertO.run(qid, o.text, o.correct ? 1 : 0, i));
    inserted++;
    process.stdout.write('.');
  }
  db.exec('COMMIT');
  console.log(`\n✓ Вставлено ${inserted}, пропущено ${skipped} вопросов по физике.`);
} catch (err) {
  db.exec('ROLLBACK');
  console.error('\nОшибка:', err.message);
  process.exit(1);
}
