From 4ec7728752e56b35ce12c07cd13084180f457305 Mon Sep 17 00:00:00 2001 From: dog Date: Sun, 3 Aug 2025 17:47:21 +0200 Subject: [PATCH] add - z-ai_glm_4 - 74% --- README.md | 1 + config/models.yml | 6 + lib/human_eval/solver.rb | 22 +- reports/human_eval_for_ruby_report_full.html | 172 +++++- reports/human_eval_for_ruby_report_total.html | 7 +- reports/test_results.json | 506 ++++++++++++------ reports/total.md | 5 +- rules/model_solver_prompt.txt | 22 +- tasks/t0-z_ai_glm_4.rb | 4 + tasks/t1-z_ai_glm_4.rb | 23 + tasks/t10-z_ai_glm_4.rb | 10 + tasks/t100-z_ai_glm_4.rb | 7 + tasks/t101-z_ai_glm_4.rb | 4 + tasks/t102-z_ai_glm_4.rb | 6 + tasks/t103-z_ai_glm_4.rb | 6 + tasks/t104-z_ai_glm_4.rb | 4 + tasks/t105-z_ai_glm_4.rb | 18 + tasks/t106-z_ai_glm_4.rb | 22 + tasks/t107-z_ai_glm_4.rb | 18 + tasks/t108-z_ai_glm_4.rb | 16 + tasks/t109-z_ai_glm_4.rb | 18 + tasks/t11-z_ai_glm_4.rb | 4 + tasks/t110-z_ai_glm_4.rb | 6 + tasks/t111-z_ai_glm_4.rb | 9 + tasks/t112-z_ai_glm_4.rb | 6 + tasks/t113-z_ai_glm_4.rb | 8 + tasks/t114-z_ai_glm_4.rb | 12 + tasks/t115-z_ai_glm_4.rb | 10 + tasks/t116-z_ai_glm_4.rb | 10 + tasks/t117-z_ai_glm_4.rb | 6 + tasks/t118-z_ai_glm_4.rb | 18 + tasks/t119-z_ai_glm_4.rb | 18 + tasks/t12-z_ai_glm_4.rb | 4 + tasks/t120-z_ai_glm_4.rb | 4 + tasks/t121-z_ai_glm_4.rb | 10 + tasks/t122-z_ai_glm_4.rb | 12 + tasks/t123-z_ai_glm_4.rb | 6 + tasks/t124-z_ai_glm_4.rb | 29 + tasks/t125-z_ai_glm_4.rb | 17 + tasks/t126-z_ai_glm_4.rb | 29 + tasks/t127-z_ai_glm_4.rb | 35 ++ tasks/t128-z_ai_glm_4.rb | 16 + tasks/t129-z_ai_glm_4.rb | 30 ++ tasks/t13-z_ai_glm_4.rb | 11 + tasks/t130-z_ai_glm_4.rb | 18 + tasks/t131-z_ai_glm_4.rb | 4 + tasks/t132-z_ai_glm_4.rb | 35 ++ tasks/t133-z_ai_glm_4.rb | 4 + tasks/t134-z_ai_glm_4.rb | 16 + tasks/t135-z_ai_glm_4.rb | 12 + tasks/t136-z_ai_glm_4.rb | 9 + tasks/t137-z_ai_glm_4.rb | 9 + tasks/t138-z_ai_glm_4.rb | 4 + tasks/t139-z_ai_glm_4.rb | 10 + tasks/t14-z_ai_glm_4.rb | 4 + tasks/t140-z_ai_glm_4.rb | 11 + tasks/t141-z_ai_glm_4.rb | 13 + tasks/t142-z_ai_glm_4.rb | 12 + tasks/t143-z_ai_glm_4.rb | 13 + tasks/t144-z_ai_glm_4.rb | 5 + tasks/t145-z_ai_glm_4.rb | 18 + tasks/t146-z_ai_glm_4.rb | 16 + tasks/t147-z_ai_glm_4.rb | 12 + tasks/t148-z_ai_glm_4.rb | 14 + tasks/t149-z_ai_glm_4.rb | 3 + tasks/t15-z_ai_glm_4.rb | 3 + tasks/t150-z_ai_glm_4.rb | 8 + tasks/t151-z_ai_glm_4.rb | 11 + tasks/t152-z_ai_glm_4.rb | 5 + tasks/t153-z_ai_glm_4.rb | 20 + tasks/t154-z_ai_glm_4.rb | 72 +++ tasks/t155-z_ai_glm_4.rb | 17 + tasks/t156-z_ai_glm_4.rb | 27 + tasks/t157-z_ai_glm_4.rb | 9 + tasks/t158-z_ai_glm_4.rb | 21 + tasks/t159-z_ai_glm_4.rb | 10 + tasks/t16-z_ai_glm_4.rb | 6 + tasks/t160-z_ai_glm_4.rb | 9 + tasks/t161-z_ai_glm_4.rb | 16 + tasks/t162-z_ai_glm_4.rb | 7 + tasks/t163-z_ai_glm_4.rb | 6 + tasks/t17-z_ai_glm_4.rb | 16 + tasks/t18-z_ai_glm_4.rb | 11 + tasks/t19-z_ai_glm_4.rb | 21 + tasks/t2-z_ai_glm_4.rb | 4 + tasks/t20-z_ai_glm_4.rb | 21 + tasks/t21-z_ai_glm_4.rb | 16 + tasks/t22-z_ai_glm_4.rb | 4 + tasks/t23-z_ai_glm_4.rb | 4 + tasks/t24-z_ai_glm_4.rb | 9 + tasks/t25-z_ai_glm_4.rb | 26 + tasks/t26-z_ai_glm_4.rb | 6 + tasks/t27-z_ai_glm_4.rb | 4 + tasks/t28-z_ai_glm_4.rb | 4 + tasks/t29-z_ai_glm_4.rb | 4 + tasks/t3-z_ai_glm_4.rb | 9 + tasks/t30-z_ai_glm_4.rb | 4 + tasks/t31-z_ai_glm_4.rb | 15 + tasks/t32-z_ai_glm_4.rb | 41 ++ tasks/t33-z_ai_glm_4.rb | 15 + tasks/t34-z_ai_glm_4.rb | 4 + tasks/t35-z_ai_glm_4.rb | 4 + tasks/t36-z_ai_glm_4.rb | 11 + tasks/t37-z_ai_glm_4.rb | 8 + tasks/t38-z_ai_glm_4.rb | 16 + tasks/t39-z_ai_glm_4.rb | 31 ++ tasks/t4-z_ai_glm_4.rb | 8 + tasks/t40-z_ai_glm_4.rb | 27 + tasks/t41-z_ai_glm_4.rb | 4 + tasks/t42-z_ai_glm_4.rb | 4 + tasks/t43-z_ai_glm_4.rb | 15 + tasks/t44-z_ai_glm_4.rb | 16 + tasks/t45-z_ai_glm_4.rb | 5 + tasks/t46-z_ai_glm_4.rb | 10 + tasks/t47-z_ai_glm_4.rb | 14 + tasks/t48-z_ai_glm_4.rb | 4 + tasks/t49-z_ai_glm_4.rb | 4 + tasks/t5-z_ai_glm_4.rb | 11 + tasks/t50-z_ai_glm_4.rb | 7 + tasks/t51-z_ai_glm_4.rb | 4 + tasks/t52-z_ai_glm_4.rb | 3 + tasks/t53-z_ai_glm_4.rb | 4 + tasks/t54-z_ai_glm_4.rb | 4 + tasks/t55-z_ai_glm_4.rb | 9 + tasks/t56-z_ai_glm_4.rb | 13 + tasks/t57-z_ai_glm_4.rb | 19 + tasks/t58-z_ai_glm_4.rb | 4 + tasks/t59-z_ai_glm_4.rb | 24 + tasks/t6-z_ai_glm_4.rb | 25 + tasks/t60-z_ai_glm_4.rb | 5 + tasks/t61-z_ai_glm_4.rb | 13 + tasks/t62-z_ai_glm_4.rb | 4 + tasks/t63-z_ai_glm_4.rb | 12 + tasks/t64-z_ai_glm_4.rb | 11 + tasks/t65-z_ai_glm_4.rb | 10 + tasks/t66-z_ai_glm_4.rb | 9 + tasks/t67-z_ai_glm_4.rb | 8 + tasks/t68-z_ai_glm_4.rb | 16 + tasks/t69-z_ai_glm_4.rb | 17 + tasks/t7-z_ai_glm_4.rb | 4 + tasks/t70-z_ai_glm_4.rb | 17 + tasks/t71-z_ai_glm_4.rb | 9 + tasks/t72-z_ai_glm_4.rb | 5 + tasks/t73-z_ai_glm_4.rb | 14 + tasks/t74-z_ai_glm_4.rb | 7 + tasks/t75-z_ai_glm_4.rb | 24 + tasks/t76-z_ai_glm_4.rb | 40 ++ tasks/t77-z_ai_glm_4.rb | 28 + tasks/t78-z_ai_glm_4.rb | 8 + tasks/t79-z_ai_glm_4.rb | 5 + tasks/t8-z_ai_glm_4.rb | 6 + tasks/t80-z_ai_glm_4.rb | 15 + tasks/t81-z_ai_glm_4.rb | 36 ++ tasks/t82-z_ai_glm_4.rb | 9 + tasks/t83-z_ai_glm_4.rb | 8 + tasks/t84-z_ai_glm_4.rb | 5 + tasks/t85-z_ai_glm_4.rb | 10 + tasks/t86-z_ai_glm_4.rb | 11 + tasks/t87-z_ai_glm_4.rb | 12 + tasks/t88-z_ai_glm_4.rb | 14 + tasks/t89-z_ai_glm_4.rb | 10 + tasks/t9-z_ai_glm_4.rb | 14 + tasks/t90-z_ai_glm_4.rb | 4 + tasks/t91-z_ai_glm_4.rb | 11 + tasks/t92-z_ai_glm_4.rb | 4 + tasks/t93-z_ai_glm_4.rb | 18 + tasks/t94-z_ai_glm_4.rb | 14 + tasks/t95-z_ai_glm_4.rb | 11 + tasks/t96-z_ai_glm_4.rb | 22 + tasks/t97-z_ai_glm_4.rb | 4 + tasks/t98-z_ai_glm_4.rb | 11 + tasks/t99-z_ai_glm_4.rb | 4 + 172 files changed, 2569 insertions(+), 192 deletions(-) create mode 100644 tasks/t0-z_ai_glm_4.rb create mode 100644 tasks/t1-z_ai_glm_4.rb create mode 100644 tasks/t10-z_ai_glm_4.rb create mode 100644 tasks/t100-z_ai_glm_4.rb create mode 100644 tasks/t101-z_ai_glm_4.rb create mode 100644 tasks/t102-z_ai_glm_4.rb create mode 100644 tasks/t103-z_ai_glm_4.rb create mode 100644 tasks/t104-z_ai_glm_4.rb create mode 100644 tasks/t105-z_ai_glm_4.rb create mode 100644 tasks/t106-z_ai_glm_4.rb create mode 100644 tasks/t107-z_ai_glm_4.rb create mode 100644 tasks/t108-z_ai_glm_4.rb create mode 100644 tasks/t109-z_ai_glm_4.rb create mode 100644 tasks/t11-z_ai_glm_4.rb create mode 100644 tasks/t110-z_ai_glm_4.rb create mode 100644 tasks/t111-z_ai_glm_4.rb create mode 100644 tasks/t112-z_ai_glm_4.rb create mode 100644 tasks/t113-z_ai_glm_4.rb create mode 100644 tasks/t114-z_ai_glm_4.rb create mode 100644 tasks/t115-z_ai_glm_4.rb create mode 100644 tasks/t116-z_ai_glm_4.rb create mode 100644 tasks/t117-z_ai_glm_4.rb create mode 100644 tasks/t118-z_ai_glm_4.rb create mode 100644 tasks/t119-z_ai_glm_4.rb create mode 100644 tasks/t12-z_ai_glm_4.rb create mode 100644 tasks/t120-z_ai_glm_4.rb create mode 100644 tasks/t121-z_ai_glm_4.rb create mode 100644 tasks/t122-z_ai_glm_4.rb create mode 100644 tasks/t123-z_ai_glm_4.rb create mode 100644 tasks/t124-z_ai_glm_4.rb create mode 100644 tasks/t125-z_ai_glm_4.rb create mode 100644 tasks/t126-z_ai_glm_4.rb create mode 100644 tasks/t127-z_ai_glm_4.rb create mode 100644 tasks/t128-z_ai_glm_4.rb create mode 100644 tasks/t129-z_ai_glm_4.rb create mode 100644 tasks/t13-z_ai_glm_4.rb create mode 100644 tasks/t130-z_ai_glm_4.rb create mode 100644 tasks/t131-z_ai_glm_4.rb create mode 100644 tasks/t132-z_ai_glm_4.rb create mode 100644 tasks/t133-z_ai_glm_4.rb create mode 100644 tasks/t134-z_ai_glm_4.rb create mode 100644 tasks/t135-z_ai_glm_4.rb create mode 100644 tasks/t136-z_ai_glm_4.rb create mode 100644 tasks/t137-z_ai_glm_4.rb create mode 100644 tasks/t138-z_ai_glm_4.rb create mode 100644 tasks/t139-z_ai_glm_4.rb create mode 100644 tasks/t14-z_ai_glm_4.rb create mode 100644 tasks/t140-z_ai_glm_4.rb create mode 100644 tasks/t141-z_ai_glm_4.rb create mode 100644 tasks/t142-z_ai_glm_4.rb create mode 100644 tasks/t143-z_ai_glm_4.rb create mode 100644 tasks/t144-z_ai_glm_4.rb create mode 100644 tasks/t145-z_ai_glm_4.rb create mode 100644 tasks/t146-z_ai_glm_4.rb create mode 100644 tasks/t147-z_ai_glm_4.rb create mode 100644 tasks/t148-z_ai_glm_4.rb create mode 100644 tasks/t149-z_ai_glm_4.rb create mode 100644 tasks/t15-z_ai_glm_4.rb create mode 100644 tasks/t150-z_ai_glm_4.rb create mode 100644 tasks/t151-z_ai_glm_4.rb create mode 100644 tasks/t152-z_ai_glm_4.rb create mode 100644 tasks/t153-z_ai_glm_4.rb create mode 100644 tasks/t154-z_ai_glm_4.rb create mode 100644 tasks/t155-z_ai_glm_4.rb create mode 100644 tasks/t156-z_ai_glm_4.rb create mode 100644 tasks/t157-z_ai_glm_4.rb create mode 100644 tasks/t158-z_ai_glm_4.rb create mode 100644 tasks/t159-z_ai_glm_4.rb create mode 100644 tasks/t16-z_ai_glm_4.rb create mode 100644 tasks/t160-z_ai_glm_4.rb create mode 100644 tasks/t161-z_ai_glm_4.rb create mode 100644 tasks/t162-z_ai_glm_4.rb create mode 100644 tasks/t163-z_ai_glm_4.rb create mode 100644 tasks/t17-z_ai_glm_4.rb create mode 100644 tasks/t18-z_ai_glm_4.rb create mode 100644 tasks/t19-z_ai_glm_4.rb create mode 100644 tasks/t2-z_ai_glm_4.rb create mode 100644 tasks/t20-z_ai_glm_4.rb create mode 100644 tasks/t21-z_ai_glm_4.rb create mode 100644 tasks/t22-z_ai_glm_4.rb create mode 100644 tasks/t23-z_ai_glm_4.rb create mode 100644 tasks/t24-z_ai_glm_4.rb create mode 100644 tasks/t25-z_ai_glm_4.rb create mode 100644 tasks/t26-z_ai_glm_4.rb create mode 100644 tasks/t27-z_ai_glm_4.rb create mode 100644 tasks/t28-z_ai_glm_4.rb create mode 100644 tasks/t29-z_ai_glm_4.rb create mode 100644 tasks/t3-z_ai_glm_4.rb create mode 100644 tasks/t30-z_ai_glm_4.rb create mode 100644 tasks/t31-z_ai_glm_4.rb create mode 100644 tasks/t32-z_ai_glm_4.rb create mode 100644 tasks/t33-z_ai_glm_4.rb create mode 100644 tasks/t34-z_ai_glm_4.rb create mode 100644 tasks/t35-z_ai_glm_4.rb create mode 100644 tasks/t36-z_ai_glm_4.rb create mode 100644 tasks/t37-z_ai_glm_4.rb create mode 100644 tasks/t38-z_ai_glm_4.rb create mode 100644 tasks/t39-z_ai_glm_4.rb create mode 100644 tasks/t4-z_ai_glm_4.rb create mode 100644 tasks/t40-z_ai_glm_4.rb create mode 100644 tasks/t41-z_ai_glm_4.rb create mode 100644 tasks/t42-z_ai_glm_4.rb create mode 100644 tasks/t43-z_ai_glm_4.rb create mode 100644 tasks/t44-z_ai_glm_4.rb create mode 100644 tasks/t45-z_ai_glm_4.rb create mode 100644 tasks/t46-z_ai_glm_4.rb create mode 100644 tasks/t47-z_ai_glm_4.rb create mode 100644 tasks/t48-z_ai_glm_4.rb create mode 100644 tasks/t49-z_ai_glm_4.rb create mode 100644 tasks/t5-z_ai_glm_4.rb create mode 100644 tasks/t50-z_ai_glm_4.rb create mode 100644 tasks/t51-z_ai_glm_4.rb create mode 100644 tasks/t52-z_ai_glm_4.rb create mode 100644 tasks/t53-z_ai_glm_4.rb create mode 100644 tasks/t54-z_ai_glm_4.rb create mode 100644 tasks/t55-z_ai_glm_4.rb create mode 100644 tasks/t56-z_ai_glm_4.rb create mode 100644 tasks/t57-z_ai_glm_4.rb create mode 100644 tasks/t58-z_ai_glm_4.rb create mode 100644 tasks/t59-z_ai_glm_4.rb create mode 100644 tasks/t6-z_ai_glm_4.rb create mode 100644 tasks/t60-z_ai_glm_4.rb create mode 100644 tasks/t61-z_ai_glm_4.rb create mode 100644 tasks/t62-z_ai_glm_4.rb create mode 100644 tasks/t63-z_ai_glm_4.rb create mode 100644 tasks/t64-z_ai_glm_4.rb create mode 100644 tasks/t65-z_ai_glm_4.rb create mode 100644 tasks/t66-z_ai_glm_4.rb create mode 100644 tasks/t67-z_ai_glm_4.rb create mode 100644 tasks/t68-z_ai_glm_4.rb create mode 100644 tasks/t69-z_ai_glm_4.rb create mode 100644 tasks/t7-z_ai_glm_4.rb create mode 100644 tasks/t70-z_ai_glm_4.rb create mode 100644 tasks/t71-z_ai_glm_4.rb create mode 100644 tasks/t72-z_ai_glm_4.rb create mode 100644 tasks/t73-z_ai_glm_4.rb create mode 100644 tasks/t74-z_ai_glm_4.rb create mode 100644 tasks/t75-z_ai_glm_4.rb create mode 100644 tasks/t76-z_ai_glm_4.rb create mode 100644 tasks/t77-z_ai_glm_4.rb create mode 100644 tasks/t78-z_ai_glm_4.rb create mode 100644 tasks/t79-z_ai_glm_4.rb create mode 100644 tasks/t8-z_ai_glm_4.rb create mode 100644 tasks/t80-z_ai_glm_4.rb create mode 100644 tasks/t81-z_ai_glm_4.rb create mode 100644 tasks/t82-z_ai_glm_4.rb create mode 100644 tasks/t83-z_ai_glm_4.rb create mode 100644 tasks/t84-z_ai_glm_4.rb create mode 100644 tasks/t85-z_ai_glm_4.rb create mode 100644 tasks/t86-z_ai_glm_4.rb create mode 100644 tasks/t87-z_ai_glm_4.rb create mode 100644 tasks/t88-z_ai_glm_4.rb create mode 100644 tasks/t89-z_ai_glm_4.rb create mode 100644 tasks/t9-z_ai_glm_4.rb create mode 100644 tasks/t90-z_ai_glm_4.rb create mode 100644 tasks/t91-z_ai_glm_4.rb create mode 100644 tasks/t92-z_ai_glm_4.rb create mode 100644 tasks/t93-z_ai_glm_4.rb create mode 100644 tasks/t94-z_ai_glm_4.rb create mode 100644 tasks/t95-z_ai_glm_4.rb create mode 100644 tasks/t96-z_ai_glm_4.rb create mode 100644 tasks/t97-z_ai_glm_4.rb create mode 100644 tasks/t98-z_ai_glm_4.rb create mode 100644 tasks/t99-z_ai_glm_4.rb diff --git a/README.md b/README.md index 782e69d..6c921d3 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,7 @@ OLLAMA_BASE_URL=http://localhost:11434 Обработка задачи 99 (164/164) Модель 1/1: google_gemini-2_5-flash-preview (google/gemini-2.5-flash-preview) Обработка задач завершена +... ``` Для проверки формата результата (не попадает ли в код посторонние теги) можно решить только одну задачу: diff --git a/config/models.yml b/config/models.yml index 6070db1..dff246a 100644 --- a/config/models.yml +++ b/config/models.yml @@ -146,6 +146,12 @@ openrouter: note: https://openrouter.ai/moonshotai/kimi-k2 done: false + z-ai_glm_4: + name: z-ai/glm-4.5 + provider: openrouter.ai + note: https://openrouter.ai/z-ai/glm-4.5 + done: false + # Ollama модели ollama: ollama_llama3_2: diff --git a/lib/human_eval/solver.rb b/lib/human_eval/solver.rb index e3be376..3cd5f98 100644 --- a/lib/human_eval/solver.rb +++ b/lib/human_eval/solver.rb @@ -183,6 +183,7 @@ def prepare_prompt(content) # Логируем полный промпт debug 'Полный промпт для отправки:' + debug "Длина промпта: #{prompt.length} символов" debug '---BEGIN FULL PROMPT---' debug prompt debug '---END FULL PROMPT---' @@ -212,6 +213,7 @@ def call_model_api(prompt, model_key, provider) def process_model_response(raw_solution, model_name, output_file) # Логируем полученный ответ debug "Получено решение от модели #{model_name}" + debug "Длина ответа: #{raw_solution.length}" debug '---BEGIN MODEL RESPONSE---' debug raw_solution debug '---END MODEL RESPONSE---' @@ -219,6 +221,9 @@ def process_model_response(raw_solution, model_name, output_file) # Извлекаем код из ответа solution = extract_and_join_code_blocks(raw_solution) + debug "Длина извлеченного решения: #{solution.length}" + debug "Решение пустое после strip: #{solution.strip.empty?}" + # Проверяем, что решение не пустое if solution.strip.empty? error "❌ Модель #{model_name} вернула пустое решение!" @@ -279,7 +284,7 @@ def prepare_openrouter_request(uri, model_name, prompt) messages: [{ role: 'user', content: prompt }], temperature: 0.1, # max_tokens: 31_000, # 1000 - для всех, 31000 - для o3-mini-high - max_tokens: 1_000, # 1000 - для всех, 31000 - для o3-mini-high + max_tokens: 16_000, # Увеличиваем лимит для предотвращения обрезания stream: false }.to_json @@ -302,6 +307,16 @@ def process_openrouter_response(response, model_name) # Парсим JSON parsed_response = JSON.parse(response.body) + # Добавляем отладку + debug "Полный ответ API: #{parsed_response.inspect}" + + # Проверяем finish_reason + finish_reason = parsed_response.dig('choices', 0, 'finish_reason') + if finish_reason == 'length' + error "⚠️ Ответ модели #{model_name} был обрезан из-за лимита токенов (finish_reason: length)" + error 'Увеличьте max_tokens или сократите промпт' + end + # Извлекаем содержимое content = parsed_response.dig('choices', 0, 'message', 'content') @@ -312,6 +327,11 @@ def process_openrouter_response(response, model_name) raise 'Пустой ответ от API' end + debug "Извлеченное содержимое (длина: #{content.length}):" + debug '---BEGIN CONTENT---' + debug content + debug '---END CONTENT---' + # Кодируем в UTF-8 content.encode('UTF-8', invalid: :replace, undef: :replace, replace: '?') rescue JSON::ParserError => e diff --git a/reports/human_eval_for_ruby_report_full.html b/reports/human_eval_for_ruby_report_full.html index f98f506..eed63f3 100644 --- a/reports/human_eval_for_ruby_report_full.html +++ b/reports/human_eval_for_ruby_report_full.html @@ -64,7 +64,7 @@

Отчет о тестировании моделей

-

Дата: 2025-07-13 13:03:04

+

Дата: 2025-08-03 17:30:21

Результаты по моделям

@@ -82,10 +82,11 @@

Результаты по моделям

- - + + + @@ -124,6 +125,7 @@

Детальные результаты по задачам

+ @@ -148,6 +150,7 @@

Детальные результаты по задачам

+ @@ -177,6 +180,7 @@

Детальные результаты по задачам

+ @@ -205,6 +209,7 @@

Детальные результаты по задачам

+ @@ -233,6 +238,7 @@

Детальные результаты по задачам

+ @@ -262,6 +268,7 @@

Детальные результаты по задачам

+ @@ -290,6 +297,7 @@

Детальные результаты по задачам

+ @@ -317,6 +325,7 @@

Детальные результаты по задачам

+ @@ -345,6 +354,7 @@

Детальные результаты по задачам

+ @@ -373,6 +383,7 @@

Детальные результаты по задачам

+ @@ -401,6 +412,7 @@

Детальные результаты по задачам

+ @@ -429,6 +441,7 @@

Детальные результаты по задачам

+ @@ -457,6 +470,7 @@

Детальные результаты по задачам

+ @@ -486,6 +500,7 @@

Детальные результаты по задачам

+ @@ -514,6 +529,7 @@

Детальные результаты по задачам

+ @@ -542,6 +558,7 @@

Детальные результаты по задачам

+ @@ -571,6 +588,7 @@

Детальные результаты по задачам

+ @@ -600,6 +618,7 @@

Детальные результаты по задачам

+ @@ -629,6 +648,7 @@

Детальные результаты по задачам

+ @@ -657,6 +677,7 @@

Детальные результаты по задачам

+ @@ -686,6 +707,7 @@

Детальные результаты по задачам

+ @@ -713,6 +735,7 @@

Детальные результаты по задачам

+ @@ -740,6 +763,7 @@

Детальные результаты по задачам

+ @@ -768,6 +792,7 @@

Детальные результаты по задачам

+ @@ -796,6 +821,7 @@

Детальные результаты по задачам

+ @@ -824,6 +850,7 @@

Детальные результаты по задачам

+ @@ -852,6 +879,7 @@

Детальные результаты по задачам

+ @@ -880,6 +908,7 @@

Детальные результаты по задачам

+ @@ -907,6 +936,7 @@

Детальные результаты по задачам

+ @@ -934,6 +964,7 @@

Детальные результаты по задачам

+ @@ -961,6 +992,7 @@

Детальные результаты по задачам

+ @@ -989,6 +1021,7 @@

Детальные результаты по задачам

+ @@ -1016,6 +1049,7 @@

Детальные результаты по задачам

+ @@ -1043,6 +1077,7 @@

Детальные результаты по задачам

+ @@ -1070,6 +1105,7 @@

Детальные результаты по задачам

+ @@ -1097,6 +1133,7 @@

Детальные результаты по задачам

+ @@ -1124,6 +1161,7 @@

Детальные результаты по задачам

+ @@ -1151,6 +1189,7 @@

Детальные результаты по задачам

+ @@ -1179,6 +1218,7 @@

Детальные результаты по задачам

+ @@ -1206,6 +1246,7 @@

Детальные результаты по задачам

+ @@ -1234,6 +1275,7 @@

Детальные результаты по задачам

+ @@ -1261,6 +1303,7 @@

Детальные результаты по задачам

+ @@ -1288,6 +1331,7 @@

Детальные результаты по задачам

+ @@ -1315,6 +1359,7 @@

Детальные результаты по задачам

+ @@ -1342,6 +1387,7 @@

Детальные результаты по задачам

+ @@ -1369,6 +1415,7 @@

Детальные результаты по задачам

+ @@ -1396,6 +1443,7 @@

Детальные результаты по задачам

+ @@ -1423,6 +1471,7 @@

Детальные результаты по задачам

+ @@ -1450,6 +1499,7 @@

Детальные результаты по задачам

+ @@ -1477,6 +1527,7 @@

Детальные результаты по задачам

+ @@ -1504,6 +1555,7 @@

Детальные результаты по задачам

+ @@ -1531,6 +1583,7 @@

Детальные результаты по задачам

+ @@ -1558,6 +1611,7 @@

Детальные результаты по задачам

+ @@ -1585,6 +1639,7 @@

Детальные результаты по задачам

+ @@ -1612,6 +1667,7 @@

Детальные результаты по задачам

+ @@ -1639,6 +1695,7 @@

Детальные результаты по задачам

+ @@ -1666,6 +1723,7 @@

Детальные результаты по задачам

+ @@ -1694,6 +1752,7 @@

Детальные результаты по задачам

+ @@ -1721,6 +1780,7 @@

Детальные результаты по задачам

+ @@ -1748,6 +1808,7 @@

Детальные результаты по задачам

+ @@ -1775,6 +1836,7 @@

Детальные результаты по задачам

+ @@ -1802,6 +1864,7 @@

Детальные результаты по задачам

+ @@ -1829,6 +1892,7 @@

Детальные результаты по задачам

+ @@ -1856,6 +1920,7 @@

Детальные результаты по задачам

+ @@ -1883,6 +1948,7 @@

Детальные результаты по задачам

+ @@ -1910,6 +1976,7 @@

Детальные результаты по задачам

+ @@ -1937,6 +2004,7 @@

Детальные результаты по задачам

+ @@ -1964,6 +2032,7 @@

Детальные результаты по задачам

+ @@ -1991,6 +2060,7 @@

Детальные результаты по задачам

+ @@ -2018,6 +2088,7 @@

Детальные результаты по задачам

+ @@ -2045,6 +2116,7 @@

Детальные результаты по задачам

+ @@ -2073,6 +2145,7 @@

Детальные результаты по задачам

+ @@ -2100,6 +2173,7 @@

Детальные результаты по задачам

+ @@ -2128,6 +2202,7 @@

Детальные результаты по задачам

+ @@ -2155,6 +2230,7 @@

Детальные результаты по задачам

+ @@ -2182,6 +2258,7 @@

Детальные результаты по задачам

+ @@ -2210,6 +2287,7 @@

Детальные результаты по задачам

+ @@ -2237,6 +2315,7 @@

Детальные результаты по задачам

+ @@ -2264,6 +2343,7 @@

Детальные результаты по задачам

+ @@ -2292,6 +2372,7 @@

Детальные результаты по задачам

+ @@ -2319,6 +2400,7 @@

Детальные результаты по задачам

+ @@ -2346,6 +2428,7 @@

Детальные результаты по задачам

+ @@ -2373,6 +2456,7 @@

Детальные результаты по задачам

+ @@ -2401,6 +2485,7 @@

Детальные результаты по задачам

+ @@ -2428,6 +2513,7 @@

Детальные результаты по задачам

+ @@ -2455,6 +2541,7 @@

Детальные результаты по задачам

+ @@ -2482,6 +2569,7 @@

Детальные результаты по задачам

+ @@ -2509,6 +2597,7 @@

Детальные результаты по задачам

+ @@ -2536,6 +2625,7 @@

Детальные результаты по задачам

+ @@ -2563,6 +2653,7 @@

Детальные результаты по задачам

+ @@ -2590,6 +2681,7 @@

Детальные результаты по задачам

+ @@ -2617,6 +2709,7 @@

Детальные результаты по задачам

+ @@ -2644,6 +2737,7 @@

Детальные результаты по задачам

+ @@ -2671,6 +2765,7 @@

Детальные результаты по задачам

+ @@ -2698,6 +2793,7 @@

Детальные результаты по задачам

+ @@ -2726,6 +2822,7 @@

Детальные результаты по задачам

+ @@ -2753,6 +2850,7 @@

Детальные результаты по задачам

+ @@ -2780,6 +2878,7 @@

Детальные результаты по задачам

+ @@ -2808,6 +2907,7 @@

Детальные результаты по задачам

+ @@ -2835,6 +2935,7 @@

Детальные результаты по задачам

+ @@ -2862,6 +2963,7 @@

Детальные результаты по задачам

+ @@ -2889,6 +2991,7 @@

Детальные результаты по задачам

+ @@ -2916,6 +3019,7 @@

Детальные результаты по задачам

+ @@ -2943,6 +3047,7 @@

Детальные результаты по задачам

+ @@ -2971,6 +3076,7 @@

Детальные результаты по задачам

+ @@ -2999,6 +3105,7 @@

Детальные результаты по задачам

+ @@ -3027,6 +3134,7 @@

Детальные результаты по задачам

+ @@ -3054,6 +3162,7 @@

Детальные результаты по задачам

+ @@ -3081,6 +3190,7 @@

Детальные результаты по задачам

+ @@ -3109,6 +3219,7 @@

Детальные результаты по задачам

+ @@ -3136,6 +3247,7 @@

Детальные результаты по задачам

+ @@ -3163,6 +3275,7 @@

Детальные результаты по задачам

+ @@ -3190,6 +3303,7 @@

Детальные результаты по задачам

+ @@ -3217,6 +3331,7 @@

Детальные результаты по задачам

+ @@ -3244,6 +3359,7 @@

Детальные результаты по задачам

+ @@ -3271,6 +3387,7 @@

Детальные результаты по задачам

+ @@ -3298,6 +3415,7 @@

Детальные результаты по задачам

+ @@ -3325,6 +3443,7 @@

Детальные результаты по задачам

+ @@ -3352,6 +3471,7 @@

Детальные результаты по задачам

+ @@ -3379,6 +3499,7 @@

Детальные результаты по задачам

+ @@ -3406,6 +3527,7 @@

Детальные результаты по задачам

+ @@ -3433,6 +3555,7 @@

Детальные результаты по задачам

+ @@ -3460,6 +3583,7 @@

Детальные результаты по задачам

+ @@ -3487,6 +3611,7 @@

Детальные результаты по задачам

+ @@ -3514,6 +3639,7 @@

Детальные результаты по задачам

+ @@ -3541,6 +3667,7 @@

Детальные результаты по задачам

+ @@ -3568,6 +3695,7 @@

Детальные результаты по задачам

+ @@ -3595,6 +3723,7 @@

Детальные результаты по задачам

+ @@ -3622,6 +3751,7 @@

Детальные результаты по задачам

+ @@ -3649,6 +3779,7 @@

Детальные результаты по задачам

+ @@ -3676,6 +3807,7 @@

Детальные результаты по задачам

+ @@ -3703,6 +3835,7 @@

Детальные результаты по задачам

+ @@ -3730,6 +3863,7 @@

Детальные результаты по задачам

+ @@ -3757,6 +3891,7 @@

Детальные результаты по задачам

+ @@ -3784,6 +3919,7 @@

Детальные результаты по задачам

+ @@ -3811,6 +3947,7 @@

Детальные результаты по задачам

+ @@ -3838,6 +3975,7 @@

Детальные результаты по задачам

+ @@ -3865,6 +4003,7 @@

Детальные результаты по задачам

+ @@ -3893,6 +4032,7 @@

Детальные результаты по задачам

+ @@ -3920,6 +4060,7 @@

Детальные результаты по задачам

+ @@ -3948,6 +4089,7 @@

Детальные результаты по задачам

+ @@ -3975,6 +4117,7 @@

Детальные результаты по задачам

+ @@ -4002,6 +4145,7 @@

Детальные результаты по задачам

+ @@ -4029,6 +4173,7 @@

Детальные результаты по задачам

+ @@ -4056,6 +4201,7 @@

Детальные результаты по задачам

+ @@ -4083,6 +4229,7 @@

Детальные результаты по задачам

+ @@ -4111,6 +4258,7 @@

Детальные результаты по задачам

+ @@ -4138,6 +4286,7 @@

Детальные результаты по задачам

+ @@ -4165,6 +4314,7 @@

Детальные результаты по задачам

+ @@ -4192,6 +4342,7 @@

Детальные результаты по задачам

+ @@ -4220,6 +4371,7 @@

Детальные результаты по задачам

+ @@ -4247,6 +4399,7 @@

Детальные результаты по задачам

+ @@ -4274,6 +4427,7 @@

Детальные результаты по задачам

+ @@ -4301,6 +4455,7 @@

Детальные результаты по задачам

+ @@ -4328,6 +4483,7 @@

Детальные результаты по задачам

+ @@ -4356,6 +4512,7 @@

Детальные результаты по задачам

+ @@ -4383,6 +4540,7 @@

Детальные результаты по задачам

+ @@ -4410,6 +4568,7 @@

Детальные результаты по задачам

+ @@ -4437,6 +4596,7 @@

Детальные результаты по задачам

+ @@ -4464,6 +4624,7 @@

Детальные результаты по задачам

+ @@ -4491,6 +4652,7 @@

Детальные результаты по задачам

+ @@ -4518,6 +4680,7 @@

Детальные результаты по задачам

+ @@ -4545,6 +4708,7 @@

Детальные результаты по задачам

+ @@ -4572,6 +4736,7 @@

Детальные результаты по задачам

+ @@ -4599,5 +4764,6 @@

Детальные результаты по задачам

+
google_gemma_3_27b_it77%
deepseek_deepseek_chat77%
qwen_qwen_2_5_coder_32b_instruct75%
mistralai_codestral_250175%
google_gemini_flash_1_575%
inception_mercury_coder_small_beta74%
mistralai_codestral_250175%
qwen_qwen3_235b_a22b74%
z_ai_glm_474%
inception_mercury_coder_small_beta74%
google_gemma_3_12b_it71%
meta_llama_llama_3_1_70b_instruct69%
mistralai_mistral_small_3_1_24b_instruct67%
openai_o3_mini_high qwen_qwen2_5_vl_3b_instruct_free qwen_qwen_2_5_coder_32b_instructz_ai_glm_4
t0
t1
t10
t100
t101
t102
t103
t104
t105
t106
t107
t108
t109
t11
t110
t111
t112
t113
t114
t115
t116
t117
t118
t119
t12
t120
t121
t122
t123
t124
t125
t126
t127
t128
t129
t13
t130
t131
t132
t133
t134
t135
t136
t137
t138
t139
t14
t140
t141
t142
t143
t144
t145
t146
t147
t148
t149
t15
t150
t151
t152
t153
t154
t155
t156
t157
t158
t159
t16
t160
t161
t162
t163
t17
t18
t19
t2
t20
t21
t22
t23
t24
t25
t26
t27
t28
t29
t3
t30
t31
t32
t33
t34
t35
t36
t37
t38
t39
t4
t40
t41
t42
t43
t44
t45
t46
t47
t48
t49
t5
t50
t51
t52
t53
t54
t55
t56
t57
t58
t59
t6
t60
t61
t62
t63
t64
t65
t66
t67
t68
t69
t7
t70
t71
t72
t73
t74
t75
t76
t77
t78
t79
t8
t80
t81
t82
t83
t84
t85
t86
t87
t88
t89
t9
t90
t91
t92
t93
t94
t95
t96
t97
t98
t99
diff --git a/reports/human_eval_for_ruby_report_total.html b/reports/human_eval_for_ruby_report_total.html index 9f90d6a..4178a9c 100644 --- a/reports/human_eval_for_ruby_report_total.html +++ b/reports/human_eval_for_ruby_report_total.html @@ -64,7 +64,7 @@

Суммарный отчет о тестировании моделей

-

Дата: 2025-07-13 13:03:04

+

Дата: 2025-08-03 17:30:21

@@ -81,10 +81,11 @@

Суммарный отчет о тестировании моделей

- - + + + diff --git a/reports/test_results.json b/reports/test_results.json index d2b3f21..abec6a3 100644 --- a/reports/test_results.json +++ b/reports/test_results.json @@ -1,5 +1,5 @@ { - "timestamp": "2025-07-13 13:03:04", + "timestamp": "2025-08-03 17:30:21", "models": [ [ "google_gemma_3_9b_it", @@ -54,19 +54,23 @@ 75 ], [ - "mistralai_codestral_2501", + "google_gemini_flash_1_5", 75 ], [ - "google_gemini_flash_1_5", + "mistralai_codestral_2501", 75 ], [ - "inception_mercury_coder_small_beta", + "qwen_qwen3_235b_a22b", 74 ], [ - "qwen_qwen3_235b_a22b", + "z_ai_glm_4", + 74 + ], + [ + "inception_mercury_coder_small_beta", 74 ], [ @@ -137,7 +141,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t1": { "deepseek_deepseek_chat": false, @@ -166,7 +171,8 @@ "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": false, "qwen_qwen_2_5_coder_32b_instruct": false, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": false }, "t10": { "deepseek_deepseek_chat": true, @@ -194,7 +200,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": false, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t100": { "deepseek_deepseek_chat": false, @@ -222,7 +229,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": false, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t101": { "deepseek_deepseek_chat": true, @@ -251,7 +259,8 @@ "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t102": { "deepseek_deepseek_chat": false, @@ -279,7 +288,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t103": { "deepseek_deepseek_chat": false, @@ -306,7 +316,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": false, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": false }, "t104": { "deepseek_deepseek_chat": true, @@ -334,7 +345,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": false }, "t105": { "deepseek_deepseek_chat": true, @@ -362,7 +374,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t106": { "deepseek_deepseek_chat": true, @@ -390,7 +403,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t107": { "deepseek_deepseek_chat": true, @@ -418,7 +432,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": false }, "t108": { "deepseek_deepseek_chat": false, @@ -446,7 +461,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": false, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t109": { "deepseek_deepseek_chat": true, @@ -475,7 +491,8 @@ "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t11": { "deepseek_deepseek_chat": true, @@ -503,7 +520,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": false }, "t110": { "deepseek_deepseek_chat": true, @@ -531,7 +549,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen_2_5_coder_32b_instruct": false, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t111": { "deepseek_deepseek_chat": false, @@ -560,7 +579,8 @@ "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, "qwen_qwen_2_5_coder_32b_instruct": false, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t112": { "deepseek_deepseek_chat": false, @@ -589,7 +609,8 @@ "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t113": { "deepseek_deepseek_chat": true, @@ -618,7 +639,8 @@ "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": true, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": false }, "t114": { "deepseek_deepseek_chat": true, @@ -646,7 +668,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": true }, "t115": { "deepseek_deepseek_chat": false, @@ -675,7 +698,8 @@ "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, "qwen_qwen_2_5_coder_32b_instruct": true, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": false }, "t116": { "deepseek_deepseek_chat": false, @@ -702,7 +726,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t117": { "deepseek_deepseek_chat": true, @@ -729,7 +754,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t118": { "deepseek_deepseek_chat": false, @@ -757,7 +783,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t119": { "deepseek_deepseek_chat": false, @@ -785,7 +812,8 @@ "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t12": { "deepseek_deepseek_chat": true, @@ -813,7 +841,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t120": { "deepseek_deepseek_chat": false, @@ -841,7 +870,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t121": { "deepseek_deepseek_chat": true, @@ -869,7 +899,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t122": { "deepseek_deepseek_chat": false, @@ -896,7 +927,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t123": { "deepseek_deepseek_chat": true, @@ -923,7 +955,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t124": { "deepseek_deepseek_chat": true, @@ -950,7 +983,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t125": { "deepseek_deepseek_chat": true, @@ -978,7 +1012,8 @@ "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t126": { "deepseek_deepseek_chat": true, @@ -1005,7 +1040,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t127": { "deepseek_deepseek_chat": true, @@ -1032,7 +1068,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t128": { "deepseek_deepseek_chat": false, @@ -1059,7 +1096,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t129": { "deepseek_deepseek_chat": false, @@ -1086,7 +1124,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t13": { "deepseek_deepseek_chat": true, @@ -1113,7 +1152,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t130": { "deepseek_deepseek_chat": false, @@ -1140,7 +1180,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t131": { "deepseek_deepseek_chat": true, @@ -1168,7 +1209,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t132": { "deepseek_deepseek_chat": true, @@ -1195,7 +1237,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t133": { "deepseek_deepseek_chat": true, @@ -1223,7 +1266,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t134": { "deepseek_deepseek_chat": true, @@ -1250,7 +1294,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t135": { "deepseek_deepseek_chat": false, @@ -1277,7 +1322,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t136": { "deepseek_deepseek_chat": true, @@ -1304,7 +1350,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t137": { "deepseek_deepseek_chat": false, @@ -1331,7 +1378,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t138": { "deepseek_deepseek_chat": true, @@ -1358,7 +1406,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t139": { "deepseek_deepseek_chat": true, @@ -1385,7 +1434,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t14": { "deepseek_deepseek_chat": true, @@ -1412,7 +1462,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t140": { "deepseek_deepseek_chat": true, @@ -1439,7 +1490,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t141": { "deepseek_deepseek_chat": true, @@ -1466,7 +1518,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t142": { "deepseek_deepseek_chat": true, @@ -1493,7 +1546,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t143": { "deepseek_deepseek_chat": true, @@ -1520,7 +1574,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t144": { "deepseek_deepseek_chat": true, @@ -1547,7 +1602,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t145": { "deepseek_deepseek_chat": true, @@ -1574,7 +1630,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t146": { "deepseek_deepseek_chat": true, @@ -1601,7 +1658,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t147": { "deepseek_deepseek_chat": false, @@ -1628,7 +1686,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t148": { "deepseek_deepseek_chat": true, @@ -1655,7 +1714,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t149": { "deepseek_deepseek_chat": true, @@ -1683,7 +1743,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t15": { "deepseek_deepseek_chat": true, @@ -1710,7 +1771,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t150": { "deepseek_deepseek_chat": true, @@ -1737,7 +1799,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t151": { "deepseek_deepseek_chat": true, @@ -1764,7 +1827,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t152": { "deepseek_deepseek_chat": true, @@ -1791,7 +1855,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t153": { "deepseek_deepseek_chat": true, @@ -1818,7 +1883,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t154": { "deepseek_deepseek_chat": false, @@ -1845,7 +1911,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t155": { "deepseek_deepseek_chat": true, @@ -1872,7 +1939,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t156": { "deepseek_deepseek_chat": true, @@ -1899,7 +1967,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t157": { "deepseek_deepseek_chat": true, @@ -1926,7 +1995,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t158": { "deepseek_deepseek_chat": false, @@ -1953,7 +2023,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t159": { "deepseek_deepseek_chat": false, @@ -1980,7 +2051,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t16": { "deepseek_deepseek_chat": true, @@ -2007,7 +2079,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t160": { "deepseek_deepseek_chat": true, @@ -2034,7 +2107,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t161": { "deepseek_deepseek_chat": true, @@ -2062,7 +2136,8 @@ "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t162": { "deepseek_deepseek_chat": true, @@ -2089,7 +2164,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t163": { "deepseek_deepseek_chat": true, @@ -2117,7 +2193,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t17": { "deepseek_deepseek_chat": true, @@ -2144,7 +2221,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t18": { "deepseek_deepseek_chat": true, @@ -2171,7 +2249,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t19": { "deepseek_deepseek_chat": true, @@ -2199,7 +2278,8 @@ "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t2": { "deepseek_deepseek_chat": true, @@ -2226,7 +2306,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t20": { "deepseek_deepseek_chat": true, @@ -2253,7 +2334,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t21": { "deepseek_deepseek_chat": false, @@ -2281,7 +2363,8 @@ "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen_2_5_coder_32b_instruct": false, - "rekaai_reka_flash_3_free": false + "rekaai_reka_flash_3_free": false, + "z_ai_glm_4": false }, "t22": { "deepseek_deepseek_chat": true, @@ -2308,7 +2391,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t23": { "deepseek_deepseek_chat": true, @@ -2335,7 +2419,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t24": { "deepseek_deepseek_chat": true, @@ -2362,7 +2447,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t25": { "deepseek_deepseek_chat": true, @@ -2390,7 +2476,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t26": { "deepseek_deepseek_chat": true, @@ -2417,7 +2504,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t27": { "deepseek_deepseek_chat": true, @@ -2444,7 +2532,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t28": { "deepseek_deepseek_chat": true, @@ -2471,7 +2560,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t29": { "deepseek_deepseek_chat": true, @@ -2498,7 +2588,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t3": { "deepseek_deepseek_chat": true, @@ -2525,7 +2616,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t30": { "deepseek_deepseek_chat": true, @@ -2552,7 +2644,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t31": { "deepseek_deepseek_chat": true, @@ -2579,7 +2672,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t32": { "deepseek_deepseek_chat": false, @@ -2606,7 +2700,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t33": { "deepseek_deepseek_chat": true, @@ -2633,7 +2728,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t34": { "deepseek_deepseek_chat": true, @@ -2660,7 +2756,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t35": { "deepseek_deepseek_chat": true, @@ -2687,7 +2784,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t36": { "deepseek_deepseek_chat": true, @@ -2715,7 +2813,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t37": { "deepseek_deepseek_chat": true, @@ -2742,7 +2841,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t38": { "deepseek_deepseek_chat": true, @@ -2769,7 +2869,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t39": { "deepseek_deepseek_chat": true, @@ -2797,7 +2898,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t4": { "deepseek_deepseek_chat": true, @@ -2824,7 +2926,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t40": { "deepseek_deepseek_chat": false, @@ -2851,7 +2954,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t41": { "deepseek_deepseek_chat": true, @@ -2878,7 +2982,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t42": { "deepseek_deepseek_chat": true, @@ -2905,7 +3010,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t43": { "deepseek_deepseek_chat": true, @@ -2932,7 +3038,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t44": { "deepseek_deepseek_chat": false, @@ -2960,7 +3067,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t45": { "deepseek_deepseek_chat": false, @@ -2988,7 +3096,8 @@ "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t46": { "deepseek_deepseek_chat": true, @@ -3016,7 +3125,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t47": { "deepseek_deepseek_chat": false, @@ -3043,7 +3153,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t48": { "deepseek_deepseek_chat": true, @@ -3070,7 +3181,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t49": { "deepseek_deepseek_chat": true, @@ -3098,7 +3210,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t5": { "deepseek_deepseek_chat": true, @@ -3125,7 +3238,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t50": { "deepseek_deepseek_chat": true, @@ -3152,7 +3266,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t51": { "deepseek_deepseek_chat": true, @@ -3179,7 +3294,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t52": { "deepseek_deepseek_chat": true, @@ -3206,7 +3322,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t53": { "deepseek_deepseek_chat": true, @@ -3233,7 +3350,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t54": { "deepseek_deepseek_chat": true, @@ -3260,7 +3378,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t55": { "deepseek_deepseek_chat": true, @@ -3287,7 +3406,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t56": { "deepseek_deepseek_chat": true, @@ -3314,7 +3434,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t57": { "deepseek_deepseek_chat": true, @@ -3341,7 +3462,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t58": { "deepseek_deepseek_chat": true, @@ -3368,7 +3490,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t59": { "deepseek_deepseek_chat": false, @@ -3395,7 +3518,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t6": { "deepseek_deepseek_chat": true, @@ -3422,7 +3546,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t60": { "deepseek_deepseek_chat": true, @@ -3449,7 +3574,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t61": { "deepseek_deepseek_chat": true, @@ -3476,7 +3602,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t62": { "deepseek_deepseek_chat": true, @@ -3503,7 +3630,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t63": { "deepseek_deepseek_chat": true, @@ -3530,7 +3658,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t64": { "deepseek_deepseek_chat": true, @@ -3557,7 +3686,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t65": { "deepseek_deepseek_chat": true, @@ -3584,7 +3714,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t66": { "deepseek_deepseek_chat": true, @@ -3611,7 +3742,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t67": { "deepseek_deepseek_chat": true, @@ -3638,7 +3770,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t68": { "deepseek_deepseek_chat": true, @@ -3665,7 +3798,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t69": { "deepseek_deepseek_chat": true, @@ -3692,7 +3826,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t7": { "deepseek_deepseek_chat": true, @@ -3719,7 +3854,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t70": { "deepseek_deepseek_chat": false, @@ -3746,7 +3882,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t71": { "deepseek_deepseek_chat": true, @@ -3773,7 +3910,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t72": { "deepseek_deepseek_chat": true, @@ -3800,7 +3938,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t73": { "deepseek_deepseek_chat": true, @@ -3827,7 +3966,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t74": { "deepseek_deepseek_chat": true, @@ -3854,7 +3994,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t75": { "deepseek_deepseek_chat": true, @@ -3882,7 +4023,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t76": { "deepseek_deepseek_chat": false, @@ -3909,7 +4051,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t77": { "deepseek_deepseek_chat": false, @@ -3937,7 +4080,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t78": { "deepseek_deepseek_chat": true, @@ -3964,7 +4108,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t79": { "deepseek_deepseek_chat": true, @@ -3991,7 +4136,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t8": { "deepseek_deepseek_chat": true, @@ -4018,7 +4164,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t80": { "deepseek_deepseek_chat": false, @@ -4045,7 +4192,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t81": { "deepseek_deepseek_chat": false, @@ -4072,7 +4220,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t82": { "deepseek_deepseek_chat": true, @@ -4100,7 +4249,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": false }, "t83": { "deepseek_deepseek_chat": false, @@ -4127,7 +4277,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t84": { "deepseek_deepseek_chat": true, @@ -4154,7 +4305,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t85": { "deepseek_deepseek_chat": true, @@ -4181,7 +4333,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t86": { "deepseek_deepseek_chat": true, @@ -4209,7 +4362,8 @@ "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": false }, "t87": { "deepseek_deepseek_chat": true, @@ -4236,7 +4390,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t88": { "deepseek_deepseek_chat": true, @@ -4263,7 +4418,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t89": { "deepseek_deepseek_chat": false, @@ -4290,7 +4446,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t9": { "deepseek_deepseek_chat": true, @@ -4317,7 +4474,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t90": { "deepseek_deepseek_chat": true, @@ -4345,7 +4503,8 @@ "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, "qwen_qwen3_235b_a22b": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t91": { "deepseek_deepseek_chat": false, @@ -4372,7 +4531,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t92": { "deepseek_deepseek_chat": true, @@ -4399,7 +4559,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t93": { "deepseek_deepseek_chat": false, @@ -4426,7 +4587,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t94": { "deepseek_deepseek_chat": true, @@ -4453,7 +4615,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t95": { "deepseek_deepseek_chat": true, @@ -4480,7 +4643,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t96": { "deepseek_deepseek_chat": true, @@ -4507,7 +4671,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t97": { "deepseek_deepseek_chat": true, @@ -4534,7 +4699,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": false, - "qwen_qwen_2_5_coder_32b_instruct": false + "qwen_qwen_2_5_coder_32b_instruct": false, + "z_ai_glm_4": true }, "t98": { "deepseek_deepseek_chat": true, @@ -4561,7 +4727,8 @@ "openai_gpt_4o_mini": true, "openai_o3_mini_high": false, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true }, "t99": { "deepseek_deepseek_chat": true, @@ -4588,7 +4755,8 @@ "openai_gpt_4o_mini": false, "openai_o3_mini_high": true, "qwen_qwen2_5_vl_3b_instruct_free": true, - "qwen_qwen_2_5_coder_32b_instruct": true + "qwen_qwen_2_5_coder_32b_instruct": true, + "z_ai_glm_4": true } } } \ No newline at end of file diff --git a/reports/total.md b/reports/total.md index e256d89..5928e81 100644 --- a/reports/total.md +++ b/reports/total.md @@ -13,10 +13,11 @@ - google_gemma_3_27b_it: 77% - deepseek_deepseek_chat: 77% - qwen_qwen_2_5_coder_32b_instruct: 75% -- mistralai_codestral_2501: 75% - google_gemini_flash_1_5: 75% -- inception_mercury_coder_small_beta: 74% +- mistralai_codestral_2501: 75% - qwen_qwen3_235b_a22b: 74% +- z_ai_glm_4: 74% +- inception_mercury_coder_small_beta: 74% - google_gemma_3_12b_it: 71% - meta_llama_llama_3_1_70b_instruct: 69% - mistralai_mistral_small_3_1_24b_instruct: 67% diff --git a/rules/model_solver_prompt.txt b/rules/model_solver_prompt.txt index f35338d..48e5d09 100644 --- a/rules/model_solver_prompt.txt +++ b/rules/model_solver_prompt.txt @@ -1,19 +1,13 @@ -Ты - Ruby разработчик. Твоя задача - решать задачи, используя только Ruby. +Ты - Ruby разработчик. Решай задачи только на Ruby. -СТРОГИЕ ПРАВИЛА: -1. Возвращай ТОЛЬКО Ruby код без каких-либо маркеров языка, комментариев или форматирования -2. НИКОГДА не используй Python синтаксис - только Ruby -3. НЕ включай примеры использования или тесты -4. НЕ повторяй код, который уже был предоставлен -5. Используй идиоматический Ruby код и Ruby-специфичные конструкции -6. НЕ используй Python-специфичные библиотеки или функции -7. Используй snake_case для методов и переменных -8. Используй CamelCase для классов и модулей -9. Используй '?' для методов, возвращающих boolean -10. Используй '!' для методов, модифицирующих состояние объекта - -Пример формата ответа: +ПРАВИЛА: +1. Возвращай ТОЛЬКО Ruby код без маркеров ``` или комментариев +2. Используй snake_case для методов и переменных +3. Используй CamelCase для классов +4. НЕ давай объяснений - только код +5. НЕ используй Python синтаксис +Пример: def my_method(param1, param2) result = param1 + param2 result diff --git a/tasks/t0-z_ai_glm_4.rb b/tasks/t0-z_ai_glm_4.rb new file mode 100644 index 0000000..77004a3 --- /dev/null +++ b/tasks/t0-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def has_close_elements(numbers, threshold) + numbers.combination(2).any? { |a, b| (a - b).abs <= threshold } +end \ No newline at end of file diff --git a/tasks/t1-z_ai_glm_4.rb b/tasks/t1-z_ai_glm_4.rb new file mode 100644 index 0000000..22da8b7 --- /dev/null +++ b/tasks/t1-z_ai_glm_4.rb @@ -0,0 +1,23 @@ + +def separate_paren_groups(paren_string) + cleaned = paren_string.gsub(' ', '') + result = [] + current_group = "" + balance = 0 + + cleaned.each_char do |char| + current_group += char + if char == '(' + balance += 1 + elsif char == ')' + balance -= 1 + end + + if balance == 0 + result << current_group + current_group = "" + end + end + + result +end \ No newline at end of file diff --git a/tasks/t10-z_ai_glm_4.rb b/tasks/t10-z_ai_glm_4.rb new file mode 100644 index 0000000..36f9c4a --- /dev/null +++ b/tasks/t10-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +def make_palindrome(string) + return string if string == string.reverse + + n = string.length + (0...n).each do |i| + candidate = string + string[0..i].reverse + return candidate if candidate == candidate.reverse + end +end \ No newline at end of file diff --git a/tasks/t100-z_ai_glm_4.rb b/tasks/t100-z_ai_glm_4.rb new file mode 100644 index 0000000..0290002 --- /dev/null +++ b/tasks/t100-z_ai_glm_4.rb @@ -0,0 +1,7 @@ +def make_a_pile(n) + if n == 1 + [1, 3] + else + (0...n).map { |i| n + 2 * i } + end +end \ No newline at end of file diff --git a/tasks/t101-z_ai_glm_4.rb b/tasks/t101-z_ai_glm_4.rb new file mode 100644 index 0000000..437fa1e --- /dev/null +++ b/tasks/t101-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def words_string(s) + s.split(/[ ,]+/).reject(&:empty?) +end \ No newline at end of file diff --git a/tasks/t102-z_ai_glm_4.rb b/tasks/t102-z_ai_glm_4.rb new file mode 100644 index 0000000..68f435b --- /dev/null +++ b/tasks/t102-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +def choose_num(x, y) + return -1 if x > y + candidate = y - (y % 2) + candidate >= x ? candidate : -1 +end \ No newline at end of file diff --git a/tasks/t103-z_ai_glm_4.rb b/tasks/t103-z_ai_glm_4.rb new file mode 100644 index 0000000..4d6fe2b --- /dev/null +++ b/tasks/t103-z_ai_glm_4.rb @@ -0,0 +1,6 @@ +def rounded_avg(n, m) + return -1 if n > m + avg = (n + m) / 2.0 + rounded_value = avg.round + "0b" + rounded_value.to_s(2) +end \ No newline at end of file diff --git a/tasks/t104-z_ai_glm_4.rb b/tasks/t104-z_ai_glm_4.rb new file mode 100644 index 0000000..94c42bd --- /dev/null +++ b/tasks/t104-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +unique_digits(numbers) + numbers.select { |num| num.to_s.chars.all? { |d| d.to_i.odd? } }.sort +end \ No newline at end of file diff --git a/tasks/t105-z_ai_glm_4.rb b/tasks/t105-z_ai_glm_4.rb new file mode 100644 index 0000000..47cd37d --- /dev/null +++ b/tasks/t105-z_ai_glm_4.rb @@ -0,0 +1,18 @@ + +def by_length(arr) + filtered = arr.select { |x| x >= 1 && x <= 9 } + sorted_asc = filtered.sort + reversed = sorted_asc.reverse + words = { + 1 => "One", + 2 => "Two", + 3 => "Three", + 4 => "Four", + 5 => "Five", + 6 => "Six", + 7 => "Seven", + 8 => "Eight", + 9 => "Nine" + } + reversed.map { |num| words[num] } +end \ No newline at end of file diff --git a/tasks/t106-z_ai_glm_4.rb b/tasks/t106-z_ai_glm_4.rb new file mode 100644 index 0000000..c79c66c --- /dev/null +++ b/tasks/t106-z_ai_glm_4.rb @@ -0,0 +1,22 @@ + +def f(n) + return [] if n == 0 + + result = [] + last_factorial = 1 + last_factorial_index = 0 + + (1..n).each do |i| + if i.odd? + s = i * (i + 1) / 2 + result << s + else + temp = last_factorial * (i - 1) * i + result << temp + last_factorial = temp + last_factorial_index = i + end + end + + result +end \ No newline at end of file diff --git a/tasks/t107-z_ai_glm_4.rb b/tasks/t107-z_ai_glm_4.rb new file mode 100644 index 0000000..7ba3d94 --- /dev/null +++ b/tasks/t107-z_ai_glm_4.rb @@ -0,0 +1,18 @@ + +even_odd_palindrome(n) + even_count = 0 + odd_count = 0 + + (1..n).each do |num| + str = num.to_s + if str == str.reverse + if num.even? + even_count += 1 + else + odd_count += 1 + end + end + end + + [even_count, odd_count] +end \ No newline at end of file diff --git a/tasks/t108-z_ai_glm_4.rb b/tasks/t108-z_ai_glm_4.rb new file mode 100644 index 0000000..ecf1dad --- /dev/null +++ b/tasks/t108-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def count_nums(arr) + count = 0 + arr.each do |n| + s = n.to_s + if s.start_with?('-') + digits = s[1..-1].chars + sum = -digits[0].to_i + sum += digits[1..-1].map(&:to_i).sum if digits.length > 1 + else + sum = s.chars.map(&:to_i).sum + end + count += 1 if sum > 0 + end + count +end \ No newline at end of file diff --git a/tasks/t109-z_ai_glm_4.rb b/tasks/t109-z_ai_glm_4.rb new file mode 100644 index 0000000..bb76279 --- /dev/null +++ b/tasks/t109-z_ai_glm_4.rb @@ -0,0 +1,18 @@ + +def move_one_ball(arr) + n = arr.length + return true if n == 0 + + count = 0 + (0...n-1).each do |i| + count += 1 if arr[i] > arr[i+1] + end + + if count == 0 + true + elsif count == 1 + arr.last <= arr.first + else + false + end +end \ No newline at end of file diff --git a/tasks/t11-z_ai_glm_4.rb b/tasks/t11-z_ai_glm_4.rb new file mode 100644 index 0000000..6c7b499 --- /dev/null +++ b/tasks/t11-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +string_xor(a, b) + a.chars.zip(b.chars).map { |x, y| (x.to_i ^ y.to_i).to_s }.join +end \ No newline at end of file diff --git a/tasks/t110-z_ai_glm_4.rb b/tasks/t110-z_ai_glm_4.rb new file mode 100644 index 0000000..36d98cd --- /dev/null +++ b/tasks/t110-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +def exchange(lst1, lst2) + odd_count1 = lst1.count { |x| x.odd? } + even_count2 = lst2.count { |x| x.even? } + odd_count1 <= even_count2 ? "YES" : "NO" +end \ No newline at end of file diff --git a/tasks/t111-z_ai_glm_4.rb b/tasks/t111-z_ai_glm_4.rb new file mode 100644 index 0000000..c68246d --- /dev/null +++ b/tasks/t111-z_ai_glm_4.rb @@ -0,0 +1,9 @@ +def histogram(text) + freq = Hash.new(0) + text.each_char do |char| + freq[char] += 1 if ('a'..'z').include?(char) + end + return {} if freq.empty? + max_freq = freq.values.max + freq.select { |_, count| count == max_freq } +end \ No newline at end of file diff --git a/tasks/t112-z_ai_glm_4.rb b/tasks/t112-z_ai_glm_4.rb new file mode 100644 index 0000000..3adcf3a --- /dev/null +++ b/tasks/t112-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +def reverse_delete(s, c) + result = s.delete(c) + is_palindrome = result == result.reverse + [result, is_palindrome] +end \ No newline at end of file diff --git a/tasks/t113-z_ai_glm_4.rb b/tasks/t113-z_ai_glm_4.rb new file mode 100644 index 0000000..fdf7033 --- /dev/null +++ b/tasks/t113-z_ai_glm_4.rb @@ -0,0 +1,8 @@ + + +def odd_count(strings) + strings.map do |s| + count = s.count { |c| c.to_i.odd? } + "the number of odd elements #{count}n the str#{count}ng #{count} of the #{count}nput." + end +end \ No newline at end of file diff --git a/tasks/t114-z_ai_glm_4.rb b/tasks/t114-z_ai_glm_4.rb new file mode 100644 index 0000000..d6c6dd5 --- /dev/null +++ b/tasks/t114-z_ai_glm_4.rb @@ -0,0 +1,12 @@ + +def min_sub_array_sum(nums) + current_sum = nums[0] + min_sum = nums[0] + + (1...nums.length).each do |i| + current_sum = [nums[i], current_sum + nums[i]].min + min_sum = [min_sum, current_sum].min + end + + min_sum +end \ No newline at end of file diff --git a/tasks/t115-z_ai_glm_4.rb b/tasks/t115-z_ai_glm_4.rb new file mode 100644 index 0000000..9ee0722 --- /dev/null +++ b/tasks/t115-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +def max_fill(grid, capacity) + total_dips = 0 + grid.each do |row| + water_in_row = row.sum + dips_for_row = (water_in_row + capacity - 1) / capacity + total_dips += dips_for_row + end + total_dips +end \ No newline at end of file diff --git a/tasks/t116-z_ai_glm_4.rb b/tasks/t116-z_ai_glm_4.rb new file mode 100644 index 0000000..1a99712 --- /dev/null +++ b/tasks/t116-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +def sort_array(arr) + negatives = arr.select { |x| x < 0 } + non_negatives = arr.select { |x| x >= 0 } + + negatives_sorted = negatives.sort + non_negatives_sorted = non_negatives.sort_by { |x| [x.to_s(2).count('1'), x] } + + negatives_sorted + non_negatives_sorted +end \ No newline at end of file diff --git a/tasks/t117-z_ai_glm_4.rb b/tasks/t117-z_ai_glm_4.rb new file mode 100644 index 0000000..866479a --- /dev/null +++ b/tasks/t117-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +def select_words(s, n) + return [] if s.empty? + vowels = "aeiouAEIOU" + s.split.select { |word| word.count("^aeiouAEIOU") == n } +end \ No newline at end of file diff --git a/tasks/t118-z_ai_glm_4.rb b/tasks/t118-z_ai_glm_4.rb new file mode 100644 index 0000000..d8b3d06 --- /dev/null +++ b/tasks/t118-z_ai_glm_4.rb @@ -0,0 +1,18 @@ + +def get_closest_vowel(word) + vowels = 'aeiouAEIOU' + return "" if word.length < 3 + + (word.length - 2).downto(1) do |i| + current_char = word[i] + if vowels.include?(current_char) + left_char = word[i - 1] + right_char = word[i + 1] + if !vowels.include?(left_char) && !vowels.include?(right_char) + return current_char + end + end + end + + "" +end \ No newline at end of file diff --git a/tasks/t119-z_ai_glm_4.rb b/tasks/t119-z_ai_glm_4.rb new file mode 100644 index 0000000..30e7b7a --- /dev/null +++ b/tasks/t119-z_ai_glm_4.rb @@ -0,0 +1,18 @@ + +def match_parens(lst) + s1, s2 = lst + + def balanced?(str) + balance = 0 + str.each_char do |c| + balance += (c == '(' ? 1 : -1) + return false if balance < 0 + end + balance == 0 + end + + return 'Yes' if balanced?(s1 + s2) + return 'Yes' if balanced?(s2 + s1) + + 'No' +end \ No newline at end of file diff --git a/tasks/t12-z_ai_glm_4.rb b/tasks/t12-z_ai_glm_4.rb new file mode 100644 index 0000000..4225468 --- /dev/null +++ b/tasks/t12-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def longest(strings) + strings.max_by { |s| s.length } +end \ No newline at end of file diff --git a/tasks/t120-z_ai_glm_4.rb b/tasks/t120-z_ai_glm_4.rb new file mode 100644 index 0000000..d784a9a --- /dev/null +++ b/tasks/t120-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +maximum(arr, k) + arr.sort.last(k) +end \ No newline at end of file diff --git a/tasks/t121-z_ai_glm_4.rb b/tasks/t121-z_ai_glm_4.rb new file mode 100644 index 0000000..738e379 --- /dev/null +++ b/tasks/t121-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +def sum_odd_even_pos(lst) + sum = 0 + lst.each_with_index do |num, index| + if index.even? && num.odd? + sum += num + end + end + sum +end \ No newline at end of file diff --git a/tasks/t122-z_ai_glm_4.rb b/tasks/t122-z_ai_glm_4.rb new file mode 100644 index 0000000..2b50631 --- /dev/null +++ b/tasks/t122-z_ai_glm_4.rb @@ -0,0 +1,12 @@ + +def add_elements(arr, k) + selected = arr.take(k) + sum = 0 + selected.each do |num| + num_str = num.abs.to_s + if num_str.length <= 2 + sum += num + end + end + sum +end \ No newline at end of file diff --git a/tasks/t123-z_ai_glm_4.rb b/tasks/t123-z_ai_glm_4.rb new file mode 100644 index 0000000..030d3af --- /dev/null +++ b/tasks/t123-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +def get_odd_collatz(n) + result = [1] + result << n if n.odd? + result.uniq.sort +end \ No newline at end of file diff --git a/tasks/t124-z_ai_glm_4.rb b/tasks/t124-z_ai_glm_4.rb new file mode 100644 index 0000000..7838aeb --- /dev/null +++ b/tasks/t124-z_ai_glm_4.rb @@ -0,0 +1,29 @@ + +def valid_date?(date_string) + return false if date_string.empty? + + parts = date_string.split('-') + return false unless parts.size == 3 + + month_str, day_str, year_str = parts + return false unless month_str.match?(/^\d{2}$/) && day_str.match?(/^\d{2}$/) && year_str.match?(/^\d{4}$/) + + month = month_str.to_i + day = day_str.to_i + year = year_str.to_i + + return false if month < 1 || month > 12 + return false if day < 1 + + days_in_month = case month + when 1, 3, 5, 7, 8, 10, 12 + 31 + when 4, 6, 9, 11 + 30 + when 2 + leap_year = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) + leap_year ? 29 : 28 + end + + day <= days_in_month +end \ No newline at end of file diff --git a/tasks/t125-z_ai_glm_4.rb b/tasks/t125-z_ai_glm_4.rb new file mode 100644 index 0000000..a30d628 --- /dev/null +++ b/tasks/t125-z_ai_glm_4.rb @@ -0,0 +1,17 @@ + +def split_words(txt) + if txt.include?(' ') + txt.split + elsif txt.include?(',') + txt.split(',') + else + count = 0 + txt.each_char do |c| + if c >= 'a' && c <= 'z' + pos = c.ord - 'a'.ord + count += 1 if pos.odd? + end + end + count + end +end \ No newline at end of file diff --git a/tasks/t126-z_ai_glm_4.rb b/tasks/t126-z_ai_glm_4.rb new file mode 100644 index 0000000..0e4cf53 --- /dev/null +++ b/tasks/t126-z_ai_glm_4.rb @@ -0,0 +1,29 @@ + +def is_sorted?(lst) + return true if lst.empty? + + prev = lst[0] + count = 1 + + (1...lst.length).each do |i| + current = lst[i] + + if current < prev + return false + end + + if current == prev + count += 1 + else + count = 1 + end + + if count >= 3 + return false + end + + prev = current + end + + true +end \ No newline at end of file diff --git a/tasks/t127-z_ai_glm_4.rb b/tasks/t127-z_ai_glm_4.rb new file mode 100644 index 0000000..c2290c3 --- /dev/null +++ b/tasks/t127-z_ai_glm_4.rb @@ -0,0 +1,35 @@ +def intersection(interval1, interval2) + a1, b1 = interval1 + a2, b2 = interval2 + + start = [a1, a2].max + end_ = [b1, b2].min + + if start > end_ + return "NO" + end + + length = end_ - start + 1 + + if length < 2 + return "NO" + end + + if length == 2 + return "YES" + end + + if length % 2 == 0 + return "NO" + end + + i = 3 + while i * i <= length + if length % i == 0 + return "NO" + end + i += 2 + end + + "YES" +end \ No newline at end of file diff --git a/tasks/t128-z_ai_glm_4.rb b/tasks/t128-z_ai_glm_4.rb new file mode 100644 index 0000000..8baa03e --- /dev/null +++ b/tasks/t128-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + + +def prod_signs(arr) + return nil if arr.empty? + + sum_abs = 0 + prod_sign = 1 + + arr.each do |num| + sum_abs += num.abs + sign = num <=> 0 + prod_sign *= sign + end + + sum_abs * prod_sign +end \ No newline at end of file diff --git a/tasks/t129-z_ai_glm_4.rb b/tasks/t129-z_ai_glm_4.rb new file mode 100644 index 0000000..ba8a697 --- /dev/null +++ b/tasks/t129-z_ai_glm_4.rb @@ -0,0 +1,30 @@ + +def min_path(grid, k) + n = grid.size + coord_map = {} + (0...n).each do |i| + (0...n).each do |j| + value = grid[i][j] + coord_map[value] = [i, j] + end + end + + min_value = coord_map.keys.min + path = [min_value] + current_pos = coord_map[min_value] + + (k - 1).times do + i, j = current_pos + neighbors = [] + neighbors << grid[i - 1][j] if i - 1 >= 0 + neighbors << grid[i + 1][j] if i + 1 < n + neighbors << grid[i][j - 1] if j - 1 >= 0 + neighbors << grid[i][j + 1] if j + 1 < n + + next_val = neighbors.min + path << next_val + current_pos = coord_map[next_val] + end + + path +end \ No newline at end of file diff --git a/tasks/t13-z_ai_glm_4.rb b/tasks/t13-z_ai_glm_4.rb new file mode 100644 index 0000000..6de08ae --- /dev/null +++ b/tasks/t13-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +greatest_common_divisor(a, b) + a = a.abs + b = b.abs + + while b != 0 + a, b = b, a % b + end + + a +end \ No newline at end of file diff --git a/tasks/t130-z_ai_glm_4.rb b/tasks/t130-z_ai_glm_4.rb new file mode 100644 index 0000000..c7c8500 --- /dev/null +++ b/tasks/t130-z_ai_glm_4.rb @@ -0,0 +1,18 @@ + +def tri(n) + result = [] + (0..n).each do |i| + if i == 0 + result << 1 + elsif i == 1 + result << 3 + else + if i.even? + result << 1 + i / 2 + else + result << result[i-1] + result[i-2] + (1 + (i+1)/2) + end + end + end + result +end \ No newline at end of file diff --git a/tasks/t131-z_ai_glm_4.rb b/tasks/t131-z_ai_glm_4.rb new file mode 100644 index 0000000..adc258e --- /dev/null +++ b/tasks/t131-z_ai_glm_4.rb @@ -0,0 +1,4 @@ +def digits(n) + odd_digits = n.to_s.chars.map(&:to_i).select(&:odd?) + odd_digits.empty? ? 0 : odd_digits.reduce(1, :*) +end \ No newline at end of file diff --git a/tasks/t132-z_ai_glm_4.rb b/tasks/t132-z_ai_glm_4.rb new file mode 100644 index 0000000..76968e1 --- /dev/null +++ b/tasks/t132-z_ai_glm_4.rb @@ -0,0 +1,35 @@ + +def is_nested?(string) + stack = [] + pairs = [] + + string.each_char.with_index do |char, i| + if char == '[' + stack.push(i) + elsif !stack.empty? + open_index = stack.pop + pairs << [open_index, i] + end + end + + return false if pairs.size < 2 + + pairs.sort_by! { |pair| pair[0] } + has_children = Array.new(pairs.size, false) + stack = [] + + pairs.each_with_index do |(open_i, close_i), idx| + while !stack.empty? && pairs[stack.last][1] < close_i + stack.pop + end + + if !stack.empty? + parent_idx = stack.last + has_children[parent_idx] = true + end + + stack.push(idx) + end + + has_children.any? +end \ No newline at end of file diff --git a/tasks/t133-z_ai_glm_4.rb b/tasks/t133-z_ai_glm_4.rb new file mode 100644 index 0000000..b1c02d4 --- /dev/null +++ b/tasks/t133-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def sum_squares(lst) + lst.map { |x| x.ceil ** 2 }.sum +end \ No newline at end of file diff --git a/tasks/t134-z_ai_glm_4.rb b/tasks/t134-z_ai_glm_4.rb new file mode 100644 index 0000000..d1ca113 --- /dev/null +++ b/tasks/t134-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def check_last_char_letter?(txt) + return false if txt.empty? + + last_char = txt[-1] + return false unless last_char.match?(/[a-zA-Z]/) + + return true if txt.length == 1 + + prev_char = txt[-2] + if prev_char == ' ' + (txt.length - 2) > 0 + else + false + end +end \ No newline at end of file diff --git a/tasks/t135-z_ai_glm_4.rb b/tasks/t135-z_ai_glm_4.rb new file mode 100644 index 0000000..0fbed29 --- /dev/null +++ b/tasks/t135-z_ai_glm_4.rb @@ -0,0 +1,12 @@ + +def can_arrange(arr) + return -1 if arr.empty? || arr.length == 1 + + (1...arr.length).each do |i| + if arr[i] < arr[i-1] + return i + end + end + + -1 +end \ No newline at end of file diff --git a/tasks/t136-z_ai_glm_4.rb b/tasks/t136-z_ai_glm_4.rb new file mode 100644 index 0000000..f739275 --- /dev/null +++ b/tasks/t136-z_ai_glm_4.rb @@ -0,0 +1,9 @@ + + +def largest_smallest_integers(lst) + negatives = lst.select { |x| x < 0 } + positives = lst.select { |x| x > 0 } + a = negatives.empty? ? nil : negatives.max + b = positives.empty? ? nil : positives.min + [a, b] +end \ No newline at end of file diff --git a/tasks/t137-z_ai_glm_4.rb b/tasks/t137-z_ai_glm_4.rb new file mode 100644 index 0000000..a2b9068 --- /dev/null +++ b/tasks/t137-z_ai_glm_4.rb @@ -0,0 +1,9 @@ + +def compare_one(a, b) + num_a = a.is_a?(String) ? a.tr(',', '.').to_f : a.to_f + num_b = b.is_a?(String) ? b.tr(',', '.').to_f : b.to_f + + return nil if num_a == num_b + + num_a > num_b ? a : b +end \ No newline at end of file diff --git a/tasks/t138-z_ai_glm_4.rb b/tasks/t138-z_ai_glm_4.rb new file mode 100644 index 0000000..1ccc116 --- /dev/null +++ b/tasks/t138-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def is_equal_to_sum_even?(n) + n >= 8 && n % 4 == 0 +end \ No newline at end of file diff --git a/tasks/t139-z_ai_glm_4.rb b/tasks/t139-z_ai_glm_4.rb new file mode 100644 index 0000000..43042b0 --- /dev/null +++ b/tasks/t139-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +def special_factorial(n) + result = 1 + current_factorial = 1 + (1..n).each do |i| + current_factorial *= i + result *= current_factorial + end + result +end \ No newline at end of file diff --git a/tasks/t14-z_ai_glm_4.rb b/tasks/t14-z_ai_glm_4.rb new file mode 100644 index 0000000..4ef9d06 --- /dev/null +++ b/tasks/t14-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def all_prefixes(string) + (1..string.length).map { |i| string[0, i] } +end \ No newline at end of file diff --git a/tasks/t140-z_ai_glm_4.rb b/tasks/t140-z_ai_glm_4.rb new file mode 100644 index 0000000..75a7a37 --- /dev/null +++ b/tasks/t140-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +def fix_spaces(text) + text = text.gsub(/ {3,}/, '-') + text = text.gsub(/\A {2}/, '_') + text = text.gsub(/\A /, '_') + text = text.gsub(/ {2}\z/, '__') + text = text.gsub(/ \z/, '_') + text = text.gsub(/ /, '__') + text = text.gsub(/ /, '_') + text +end \ No newline at end of file diff --git a/tasks/t141-z_ai_glm_4.rb b/tasks/t141-z_ai_glm_4.rb new file mode 100644 index 0000000..f0d2bd7 --- /dev/null +++ b/tasks/t141-z_ai_glm_4.rb @@ -0,0 +1,13 @@ + +def file_name_check(file_name) + parts = file_name.split('.') + return 'No' if parts.size != 2 + + name, extension = parts + return 'No' if name.empty? || extension.empty? + return 'No' unless name[0] =~ /[a-zA-Z]/ + return 'No' unless ['txt', 'exe', 'dll'].include?(extension) + return 'No' if name.count('0-9') > 3 + + 'Yes' +end \ No newline at end of file diff --git a/tasks/t142-z_ai_glm_4.rb b/tasks/t142-z_ai_glm_4.rb new file mode 100644 index 0000000..c606652 --- /dev/null +++ b/tasks/t142-z_ai_glm_4.rb @@ -0,0 +1,12 @@ + +def sum_squares(lst) + lst.each_with_index.sum do |num, index| + if index % 3 == 0 + num ** 2 + elsif index % 4 == 0 + num ** 3 + else + num + end + end +end \ No newline at end of file diff --git a/tasks/t143-z_ai_glm_4.rb b/tasks/t143-z_ai_glm_4.rb new file mode 100644 index 0000000..c27fc9a --- /dev/null +++ b/tasks/t143-z_ai_glm_4.rb @@ -0,0 +1,13 @@ +def prime_length_words(sentence) + words = sentence.split + primes = words.select { |word| prime?(word.length) } + primes.join(' ') +end + +def prime?(n) + return false if n < 2 + return true if n == 2 + return false if n.even? + limit = Math.sqrt(n).to_i + (3..limit).step(2).none? { |i| n % i == 0 } +end \ No newline at end of file diff --git a/tasks/t144-z_ai_glm_4.rb b/tasks/t144-z_ai_glm_4.rb new file mode 100644 index 0000000..7578b2a --- /dev/null +++ b/tasks/t144-z_ai_glm_4.rb @@ -0,0 +1,5 @@ +def simplify(x, n) + a, b = x.split('/').map(&:to_i) + c, d = n.split('/').map(&:to_i) + (a * c) % (b * d) == 0 +end \ No newline at end of file diff --git a/tasks/t145-z_ai_glm_4.rb b/tasks/t145-z_ai_glm_4.rb new file mode 100644 index 0000000..a4d611f --- /dev/null +++ b/tasks/t145-z_ai_glm_4.rb @@ -0,0 +1,18 @@ + + +def order_by_points(nums) + return [] if nums.empty? + + arr = nums.map do |num| + n = num.abs + sum = 0 + while n > 0 + sum += n % 10 + n /= 10 + end + [num, sum] + end + + sorted_arr = arr.sort_by { |num, sum| [sum, num] } + sorted_arr.map { |num, sum| num } +end \ No newline at end of file diff --git a/tasks/t146-z_ai_glm_4.rb b/tasks/t146-z_ai_glm_4.rb new file mode 100644 index 0000000..2c50379 --- /dev/null +++ b/tasks/t146-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def special_filter(nums) + count = 0 + odd_digits = '13579' + + nums.each do |num| + next unless num > 10 + + s = num.to_s + if odd_digits.include?(s[0]) && odd_digits.include?(s[-1]) + count += 1 + end + end + + count +end \ No newline at end of file diff --git a/tasks/t147-z_ai_glm_4.rb b/tasks/t147-z_ai_glm_4.rb new file mode 100644 index 0000000..3bf8e61 --- /dev/null +++ b/tasks/t147-z_ai_glm_4.rb @@ -0,0 +1,12 @@ + +_max_triples(n) + return 0 if n < 3 + + count0 = (n + 1) / 3 + count1 = n - count0 + + c0 = count0 < 3 ? 0 : count0 * (count0 - 1) * (count0 - 2) / 6 + c1 = count1 < 3 ? 0 : count1 * (count1 - 1) * (count1 - 2) / 6 + + c0 + c1 +end \ No newline at end of file diff --git a/tasks/t148-z_ai_glm_4.rb b/tasks/t148-z_ai_glm_4.rb new file mode 100644 index 0000000..013a636 --- /dev/null +++ b/tasks/t148-z_ai_glm_4.rb @@ -0,0 +1,14 @@ + +def bf(planet1, planet2) + planets_order = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"] + + return [] unless planets_order.include?(planet1) && planets_order.include?(planet2) + + index1 = planets_order.index(planet1) + index2 = planets_order.index(planet2) + + start_index = [index1, index2].min + end_index = [index1, index2].max + + planets_order[start_index + 1...end_index] +end \ No newline at end of file diff --git a/tasks/t149-z_ai_glm_4.rb b/tasks/t149-z_ai_glm_4.rb new file mode 100644 index 0000000..041ed8e --- /dev/null +++ b/tasks/t149-z_ai_glm_4.rb @@ -0,0 +1,3 @@ +def sorted_list_sum(lst) + lst.select { |s| s.length.even? }.sort_by { |s| [s.length, s] } +end \ No newline at end of file diff --git a/tasks/t15-z_ai_glm_4.rb b/tasks/t15-z_ai_glm_4.rb new file mode 100644 index 0000000..f00ed15 --- /dev/null +++ b/tasks/t15-z_ai_glm_4.rb @@ -0,0 +1,3 @@ +def string_sequence(n) + (0..n).to_a.join(' ') +end \ No newline at end of file diff --git a/tasks/t150-z_ai_glm_4.rb b/tasks/t150-z_ai_glm_4.rb new file mode 100644 index 0000000..310e454 --- /dev/null +++ b/tasks/t150-z_ai_glm_4.rb @@ -0,0 +1,8 @@ + +x_or_y(n, x, y) + return y if n < 2 + (2..Math.sqrt(n).to_i).each do |i| + return y if n % i == 0 + end + x +end \ No newline at end of file diff --git a/tasks/t151-z_ai_glm_4.rb b/tasks/t151-z_ai_glm_4.rb new file mode 100644 index 0000000..89e11ef --- /dev/null +++ b/tasks/t151-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +def double_the_difference(numbers) + numbers.sum do |n| + if n > 0 && n == n.to_i + n_int = n.to_i + n_int.odd? ? n_int * n_int : 0 + else + 0 + end + end +end \ No newline at end of file diff --git a/tasks/t152-z_ai_glm_4.rb b/tasks/t152-z_ai_glm_4.rb new file mode 100644 index 0000000..546eb45 --- /dev/null +++ b/tasks/t152-z_ai_glm_4.rb @@ -0,0 +1,5 @@ + + +def compare(game, guess) + game.zip(guess).map { |g, gs| (g - gs).abs } +end \ No newline at end of file diff --git a/tasks/t153-z_ai_glm_4.rb b/tasks/t153-z_ai_glm_4.rb new file mode 100644 index 0000000..2b3b122 --- /dev/null +++ b/tasks/t153-z_ai_glm_4.rb @@ -0,0 +1,20 @@ + +def strongest_extension(class_name, extensions) + return nil if extensions.empty? + + max_strength = -Float::INFINITY + strongest_ext = nil + + extensions.each do |ext| + uppercase_count = ext.count('A-Z') + lowercase_count = ext.count('a-z') + strength = uppercase_count - lowercase_count + + if strength > max_strength + max_strength = strength + strongest_ext = ext + end + end + + "#{class_name}.#{strongest_ext}" +end \ No newline at end of file diff --git a/tasks/t154-z_ai_glm_4.rb b/tasks/t154-z_ai_glm_4.rb new file mode 100644 index 0000000..bfd9584 --- /dev/null +++ b/tasks/t154-z_ai_glm_4.rb @@ -0,0 +1,72 @@ + +def cycpattern_check(a, b) + n = b.length + return true if n == 0 + return false if a.length < n + + s = b + b + base1 = 26 + mod1 = 10**9 + 7 + base2 = 27 + mod2 = 10**9 + 9 + + power1 = 1 + power2 = 1 + (n - 1).times do + power1 = (power1 * base1) % mod1 + power2 = (power2 * base2) % mod2 + end + + hash_set = {} + + hash1 = 0 + hash2 = 0 + (0...n).each do |i| + c = s[i].ord - 'a'.ord + hash1 = (hash1 * base1 + c) % mod1 + hash2 = (hash2 * base2 + c) % mod2 + end + hash_set[[hash1, hash2]] = true + + (1...n).each do |i| + c_out = s[i - 1].ord - 'a'.ord + c_in = s[i + n - 1].ord - 'a'.ord + + hash1 = (hash1 - c_out * power1) % mod1 + hash1 = (hash1 * base1 + c_in) % mod1 + hash1 = (hash1 + mod1) % mod1 + + hash2 = (hash2 - c_out * power2) % mod2 + hash2 = (hash2 * base2 + c_in) % mod2 + hash2 = (hash2 + mod2) % mod2 + + hash_set[[hash1, hash2]] = true + end + + hash1 = 0 + hash2 = 0 + (0...n).each do |i| + c = a[i].ord - 'a'.ord + hash1 = (hash1 * base1 + c) % mod1 + hash2 = (hash2 * base2 + c) % mod2 + end + + return true if hash_set.key?([hash1, hash2]) + + (1...a.length - n + 1).each do |i| + c_out = a[i - 1].ord - 'a'.ord + c_in = a[i + n - 1].ord - 'a'.ord + + hash1 = (hash1 - c_out * power1) % mod1 + hash1 = (hash1 * base1 + c_in) % mod1 + hash1 = (hash1 + mod1) % mod1 + + hash2 = (hash2 - c_out * power2) % mod2 + hash2 = (hash2 * base2 + c_in) % mod2 + hash2 = (hash2 + mod2) % mod2 + + return true if hash_set.key?([hash1, hash2]) + end + + false +end \ No newline at end of file diff --git a/tasks/t155-z_ai_glm_4.rb b/tasks/t155-z_ai_glm_4.rb new file mode 100644 index 0000000..a2e1085 --- /dev/null +++ b/tasks/t155-z_ai_glm_4.rb @@ -0,0 +1,17 @@ + +def even_odd_count(num) + num_str = num.abs.to_s + even_count = 0 + odd_count = 0 + + num_str.each_char do |char| + digit = char.to_i + if digit.even? + even_count += 1 + else + odd_count += 1 + end + end + + [even_count, odd_count] +end \ No newline at end of file diff --git a/tasks/t156-z_ai_glm_4.rb b/tasks/t156-z_ai_glm_4.rb new file mode 100644 index 0000000..fd0029e --- /dev/null +++ b/tasks/t156-z_ai_glm_4.rb @@ -0,0 +1,27 @@ + +def int_to_mini_roman(number) + roman_numerals = [ + [1000, 'm'], + [900, 'cm'], + [500, 'd'], + [400, 'cd'], + [100, 'c'], + [90, 'xc'], + [50, 'l'], + [40, 'xl'], + [10, 'x'], + [9, 'ix'], + [5, 'v'], + [4, 'iv'], + [1, 'i'] + ] + + result = '' + roman_numerals.each do |value, numeral| + while number >= value + result += numeral + number -= value + end + end + result +end \ No newline at end of file diff --git a/tasks/t157-z_ai_glm_4.rb b/tasks/t157-z_ai_glm_4.rb new file mode 100644 index 0000000..da63976 --- /dev/null +++ b/tasks/t157-z_ai_glm_4.rb @@ -0,0 +1,9 @@ + +def right_angle_triangle?(a, b, c) + return false if a <= 0 || b <= 0 || c <= 0 + + sides = [a, b, c].sort + return false if sides[0] + sides[1] <= sides[2] + + (sides[0]**2 + sides[1]**2 - sides[2]**2).abs < 1e-6 +end \ No newline at end of file diff --git a/tasks/t158-z_ai_glm_4.rb b/tasks/t158-z_ai_glm_4.rb new file mode 100644 index 0000000..10815f9 --- /dev/null +++ b/tasks/t158-z_ai_glm_4.rb @@ -0,0 +1,21 @@ + +def find_max(words) + return "" if words.empty? + + max_unique = 0 + result = nil + + words.each do |word| + count = word.chars.uniq.size + if count > max_unique + max_unique = count + result = word + elsif count == max_unique + if word < result + result = word + end + end + end + + result +end \ No newline at end of file diff --git a/tasks/t159-z_ai_glm_4.rb b/tasks/t159-z_ai_glm_4.rb new file mode 100644 index 0000000..ec52ecf --- /dev/null +++ b/tasks/t159-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +(number, need, remaining) + to_eat = need - number + if to_eat <= 0 + [number, remaining] + else + actual_eat = [to_eat, remaining].min + [number + actual_eat, remaining - actual_eat] + end +end \ No newline at end of file diff --git a/tasks/t16-z_ai_glm_4.rb b/tasks/t16-z_ai_glm_4.rb new file mode 100644 index 0000000..bd0c461 --- /dev/null +++ b/tasks/t16-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +count_distinct_characters(string) + seen = {} + string.downcase.each_char { |char| seen[char] = true } + seen.size +end \ No newline at end of file diff --git a/tasks/t160-z_ai_glm_4.rb b/tasks/t160-z_ai_glm_4.rb new file mode 100644 index 0000000..991d208 --- /dev/null +++ b/tasks/t160-z_ai_glm_4.rb @@ -0,0 +1,9 @@ + +_algebra(operator, operand) + expression = operand[0].to_s + operator.each_with_index do |op, i| + op_str = op == '//' ? '/' : op + expression += " #{op_str} #{operand[i+1]}" + end + eval(expression) +end \ No newline at end of file diff --git a/tasks/t161-z_ai_glm_4.rb b/tasks/t161-z_ai_glm_4.rb new file mode 100644 index 0000000..1ef6ad3 --- /dev/null +++ b/tasks/t161-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def solve(s) + if s =~ /\p{Alpha}/ + s1 = s.swapcase + match = s1.match(/^\p{Alpha}+/) + if match && match.end(0) < s1.length + reversed_group = match[0].reverse + rest = s1[match.end(0)..-1] + reversed_group + rest + else + s1 + end + else + s.reverse + end +end \ No newline at end of file diff --git a/tasks/t162-z_ai_glm_4.rb b/tasks/t162-z_ai_glm_4.rb new file mode 100644 index 0000000..e07f40a --- /dev/null +++ b/tasks/t162-z_ai_glm_4.rb @@ -0,0 +1,7 @@ + +require 'digest' + +def string_to_md5(text) + return nil if text.empty? + Digest::MD5.hexdigest(text) +end \ No newline at end of file diff --git a/tasks/t163-z_ai_glm_4.rb b/tasks/t163-z_ai_glm_4.rb new file mode 100644 index 0000000..3e53be6 --- /dev/null +++ b/tasks/t163-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +def generate_even_numbers(a, b) + start = [a, b].min + end = [a, b].max + (start..end).select { |num| num.even? } +end \ No newline at end of file diff --git a/tasks/t17-z_ai_glm_4.rb b/tasks/t17-z_ai_glm_4.rb new file mode 100644 index 0000000..787effb --- /dev/null +++ b/tasks/t17-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def parse_music(music_string) + notes = music_string.split + result = [] + notes.each do |note| + case note + when 'o' + result << 4 + when 'o|' + result << 2 + when '.|' + result << 1 + end + end + result +end \ No newline at end of file diff --git a/tasks/t18-z_ai_glm_4.rb b/tasks/t18-z_ai_glm_4.rb new file mode 100644 index 0000000..614f75e --- /dev/null +++ b/tasks/t18-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +def how_many_times(string, substring) + return 0 if string.empty? || substring.empty? + + count = 0 + len = substring.length + (0..(string.length - len)).each do |i| + count += 1 if string[i, len] == substring + end + count +end \ No newline at end of file diff --git a/tasks/t19-z_ai_glm_4.rb b/tasks/t19-z_ai_glm_4.rb new file mode 100644 index 0000000..024e5e7 --- /dev/null +++ b/tasks/t19-z_ai_glm_4.rb @@ -0,0 +1,21 @@ + +def sort_numbers(numbers) + words = numbers.split + return '' if words.empty? + + word_to_num = { + 'zero' => 0, + 'one' => 1, + 'two' => 2, + 'three' => 3, + 'four' => 4, + 'five' => 5, + 'six' => 6, + 'seven' => 7, + 'eight' => 8, + 'nine' => 9 + } + + sorted_words = words.sort_by { |word| word_to_num[word] } + sorted_words.join(' ') +end \ No newline at end of file diff --git a/tasks/t2-z_ai_glm_4.rb b/tasks/t2-z_ai_glm_4.rb new file mode 100644 index 0000000..2d6a516 --- /dev/null +++ b/tasks/t2-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def truncate_number(number) + number % 1.0 +end \ No newline at end of file diff --git a/tasks/t20-z_ai_glm_4.rb b/tasks/t20-z_ai_glm_4.rb new file mode 100644 index 0000000..f3bb225 --- /dev/null +++ b/tasks/t20-z_ai_glm_4.rb @@ -0,0 +1,21 @@ + +def find_closest_elements(numbers) + raise ArgumentError, "List must contain at least two numbers" if numbers.size < 2 + + sorted_numbers = numbers.sort + min_diff = Float::INFINITY + closest_pair = nil + + (0...sorted_numbers.size - 1).each do |i| + num1 = sorted_numbers[i] + num2 = sorted_numbers[i + 1] + diff = (num2 - num1).abs + + if diff < min_diff + min_diff = diff + closest_pair = [num1, num2] + end + end + + closest_pair +end \ No newline at end of file diff --git a/tasks/t21-z_ai_glm_4.rb b/tasks/t21-z_ai_glm_4.rb new file mode 100644 index 0000000..2156857 --- /dev/null +++ b/tasks/t21-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def rescale_to_unit(numbers) + if numbers.size < 2 + raise ArgumentError, "Input list must contain at least two elements" + end + + min_val = numbers.min + max_val = numbers.max + + if min_val == max_val + raise ArgumentError, "Cannot scale: all numbers are equal" + end + + range = max_val - min_val + numbers.map { |x| (x - min_val) / range } +end \ No newline at end of file diff --git a/tasks/t22-z_ai_glm_4.rb b/tasks/t22-z_ai_glm_4.rb new file mode 100644 index 0000000..75886ba --- /dev/null +++ b/tasks/t22-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def filter_integers(values) + values.select { |value| value.is_a?(Integer) } +end \ No newline at end of file diff --git a/tasks/t23-z_ai_glm_4.rb b/tasks/t23-z_ai_glm_4.rb new file mode 100644 index 0000000..4f5968e --- /dev/null +++ b/tasks/t23-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def strlen(string) + string.length +end \ No newline at end of file diff --git a/tasks/t24-z_ai_glm_4.rb b/tasks/t24-z_ai_glm_4.rb new file mode 100644 index 0000000..463284b --- /dev/null +++ b/tasks/t24-z_ai_glm_4.rb @@ -0,0 +1,9 @@ +def largest_divisor(n) + return nil if n <= 1 + d = 2 + while d * d <= n + return n / d if n % d == 0 + d += 1 + end + 1 +end \ No newline at end of file diff --git a/tasks/t25-z_ai_glm_4.rb b/tasks/t25-z_ai_glm_4.rb new file mode 100644 index 0000000..8b11b51 --- /dev/null +++ b/tasks/t25-z_ai_glm_4.rb @@ -0,0 +1,26 @@ + +def factorize(n) + factors = [] + if n < 0 + factors << -1 + n = -n + end + return factors if n == 1 + + while n % 2 == 0 + factors << 2 + n /= 2 + end + + d = 3 + while d * d <= n + while n % d == 0 + factors << d + n /= d + end + d += 2 + end + + factors << n if n > 1 + factors +end \ No newline at end of file diff --git a/tasks/t26-z_ai_glm_4.rb b/tasks/t26-z_ai_glm_4.rb new file mode 100644 index 0000000..b01822a --- /dev/null +++ b/tasks/t26-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +def remove_duplicates(numbers) + count = Hash.new(0) + numbers.each { |num| count[num] += 1 } + numbers.select { |num| count[num] == 1 } +end \ No newline at end of file diff --git a/tasks/t27-z_ai_glm_4.rb b/tasks/t27-z_ai_glm_4.rb new file mode 100644 index 0000000..4a20d91 --- /dev/null +++ b/tasks/t27-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def flip_case(string) + string.swapcase +end \ No newline at end of file diff --git a/tasks/t28-z_ai_glm_4.rb b/tasks/t28-z_ai_glm_4.rb new file mode 100644 index 0000000..803ce57 --- /dev/null +++ b/tasks/t28-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def concatenate(strings) + strings.join +end \ No newline at end of file diff --git a/tasks/t29-z_ai_glm_4.rb b/tasks/t29-z_ai_glm_4.rb new file mode 100644 index 0000000..1e78b4e --- /dev/null +++ b/tasks/t29-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def filter_by_prefix(strings, prefix) + strings.select { |s| s.start_with?(prefix) } +end \ No newline at end of file diff --git a/tasks/t3-z_ai_glm_4.rb b/tasks/t3-z_ai_glm_4.rb new file mode 100644 index 0000000..cfd54e7 --- /dev/null +++ b/tasks/t3-z_ai_glm_4.rb @@ -0,0 +1,9 @@ + +def below_zero?(operations) + balance = 0 + operations.each do |op| + balance += op + return true if balance < 0 + end + false +end \ No newline at end of file diff --git a/tasks/t30-z_ai_glm_4.rb b/tasks/t30-z_ai_glm_4.rb new file mode 100644 index 0000000..809db32 --- /dev/null +++ b/tasks/t30-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def get_positive(numbers) + numbers.select { |num| num > 0 } +end \ No newline at end of file diff --git a/tasks/t31-z_ai_glm_4.rb b/tasks/t31-z_ai_glm_4.rb new file mode 100644 index 0000000..59fec31 --- /dev/null +++ b/tasks/t31-z_ai_glm_4.rb @@ -0,0 +1,15 @@ + +def is_prime?(n) + return false if n < 2 + return true if n == 2 || n == 3 + return false if n % 2 == 0 + + limit = Math.sqrt(n).to_i + divisor = 3 + while divisor <= limit + return false if n % divisor == 0 + divisor += 2 + end + + true +end \ No newline at end of file diff --git a/tasks/t32-z_ai_glm_4.rb b/tasks/t32-z_ai_glm_4.rb new file mode 100644 index 0000000..f686244 --- /dev/null +++ b/tasks/t32-z_ai_glm_4.rb @@ -0,0 +1,41 @@ + +def find_zero(xs) + x = 0.0 + max_iter = 100 + tolerance = 1e-10 + + max_iter.times do + fx = poly(x, xs) + return x if fx.abs < tolerance + + fpx = poly_prime(x, xs) + if fpx.abs < tolerance + x += 1.0 + next + end + + x_next = x - fx / fpx + return x_next if (x_next - x).abs < tolerance + x = x_next + end + + x +end + +def poly(x, xs) + b = 0.0 + xs.reverse_each do |coef| + b = b * x + coef + end + b +end + +def poly_prime(x, xs) + return 0.0 if xs.length <= 1 + n = xs.length - 1 + b = 0.0 + n.downto(1) do |i| + b = b * x + i * xs[i] + end + b +end \ No newline at end of file diff --git a/tasks/t33-z_ai_glm_4.rb b/tasks/t33-z_ai_glm_4.rb new file mode 100644 index 0000000..3ad4e55 --- /dev/null +++ b/tasks/t33-z_ai_glm_4.rb @@ -0,0 +1,15 @@ + +def sort_third(l) + third_elements = l.select.with_index { |_, i| i % 3 == 0 }.sort + result = [] + j = 0 + l.each_with_index do |elem, i| + if i % 3 == 0 + result << third_elements[j] + j += 1 + else + result << elem + end + end + result +end \ No newline at end of file diff --git a/tasks/t34-z_ai_glm_4.rb b/tasks/t34-z_ai_glm_4.rb new file mode 100644 index 0000000..04f0754 --- /dev/null +++ b/tasks/t34-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +unique(list) + list.uniq.sort +end \ No newline at end of file diff --git a/tasks/t35-z_ai_glm_4.rb b/tasks/t35-z_ai_glm_4.rb new file mode 100644 index 0000000..f7df519 --- /dev/null +++ b/tasks/t35-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def max_element(list) + list.max +end \ No newline at end of file diff --git a/tasks/t36-z_ai_glm_4.rb b/tasks/t36-z_ai_glm_4.rb new file mode 100644 index 0000000..1e06cdf --- /dev/null +++ b/tasks/t36-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +def fizz_buzz(n) + return 0 if n <= 0 + count = 0 + (1...n).each do |num| + if num % 11 == 0 || num % 13 == 0 + count += num.to_s.count('7') + end + end + count +end \ No newline at end of file diff --git a/tasks/t37-z_ai_glm_4.rb b/tasks/t37-z_ai_glm_4.rb new file mode 100644 index 0000000..f5096cd --- /dev/null +++ b/tasks/t37-z_ai_glm_4.rb @@ -0,0 +1,8 @@ + +def sort_even_elements(list) + even_elements = list.select.with_index { |_, i| i.even? } + sorted_evens = even_elements.sort + list.map.with_index do |elem, i| + i.even? ? sorted_evens[i / 2] : elem + end +end \ No newline at end of file diff --git a/tasks/t38-z_ai_glm_4.rb b/tasks/t38-z_ai_glm_4.rb new file mode 100644 index 0000000..8cd3529 --- /dev/null +++ b/tasks/t38-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def encode_cyclic(s) + return s if s.length < 3 + first_group = s[0..2] + shifted_group = first_group.chars.rotate(1).join + rest = s[3..-1] || '' + shifted_group + rest +end + +def decode_cyclic(s) + return s if s.length < 3 + first_group = s[0..2] + shifted_group = first_group.chars.rotate(-1).join + rest = s[3..-1] || '' + shifted_group + rest +end \ No newline at end of file diff --git a/tasks/t39-z_ai_glm_4.rb b/tasks/t39-z_ai_glm_4.rb new file mode 100644 index 0000000..f3f2b68 --- /dev/null +++ b/tasks/t39-z_ai_glm_4.rb @@ -0,0 +1,31 @@ + +def prime_fib(n) + raise ArgumentError, "n must be positive" if n <= 0 + + def prime?(num) + return false if num < 2 + return true if num == 2 + return false if num.even? + + limit = Math.sqrt(num).to_i + 1 + divisor = 3 + while divisor <= limit + return false if num % divisor == 0 + divisor += 2 + end + true + end + + prime_fibs = [] + a, b = 0, 1 + + while prime_fibs.size < n + c = a + b + a, b = b, c + next if c < 2 + + prime_fibs << c if prime?(c) + end + + prime_fibs.last +end \ No newline at end of file diff --git a/tasks/t4-z_ai_glm_4.rb b/tasks/t4-z_ai_glm_4.rb new file mode 100644 index 0000000..efd7bae --- /dev/null +++ b/tasks/t4-z_ai_glm_4.rb @@ -0,0 +1,8 @@ + +def mean_absolute_deviation(numbers) + return 0.0 if numbers.empty? + + mean = numbers.sum / numbers.size.to_f + absolute_deviations = numbers.map { |num| (num - mean).abs } + absolute_deviations.sum / absolute_deviations.size.to_f +end \ No newline at end of file diff --git a/tasks/t40-z_ai_glm_4.rb b/tasks/t40-z_ai_glm_4.rb new file mode 100644 index 0000000..bc20a31 --- /dev/null +++ b/tasks/t40-z_ai_glm_4.rb @@ -0,0 +1,27 @@ + +def triples_sum_to_zero(numbers) + n = numbers.length + return false if n < 3 + + numbers.sort! + + for i in 0..n-3 + next if i > 0 && numbers[i] == numbers[i-1] + + left = i + 1 + right = n - 1 + + while left < right + total = numbers[i] + numbers[left] + numbers[right] + if total == 0 + return true + elsif total < 0 + left += 1 + else + right -= 1 + end + end + end + + false +end \ No newline at end of file diff --git a/tasks/t41-z_ai_glm_4.rb b/tasks/t41-z_ai_glm_4.rb new file mode 100644 index 0000000..9a17d65 --- /dev/null +++ b/tasks/t41-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def car_race_collision(n) + n * n +end \ No newline at end of file diff --git a/tasks/t42-z_ai_glm_4.rb b/tasks/t42-z_ai_glm_4.rb new file mode 100644 index 0000000..01efc2c --- /dev/null +++ b/tasks/t42-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def incr_list(list) + list.map { |x| x + 1 } +end \ No newline at end of file diff --git a/tasks/t43-z_ai_glm_4.rb b/tasks/t43-z_ai_glm_4.rb new file mode 100644 index 0000000..5035dd7 --- /dev/null +++ b/tasks/t43-z_ai_glm_4.rb @@ -0,0 +1,15 @@ + +require 'set' + +def pairs_sum_to_zero(numbers) + seen = Set.new + numbers.each do |num| + if num != 0 + if seen.include?(-num) + return true + end + seen.add(num) + end + end + false +end \ No newline at end of file diff --git a/tasks/t44-z_ai_glm_4.rb b/tasks/t44-z_ai_glm_4.rb new file mode 100644 index 0000000..e26a81a --- /dev/null +++ b/tasks/t44-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def change_base(x, base) + raise ArgumentError, "Base must be between 2 and 9" unless base.between?(2, 9) + return "0" if x.zero? + + digits = [] + num = x + + while num > 0 + remainder = num % base + digits << remainder.to_s + num /= base + end + + digits.reverse.join +end \ No newline at end of file diff --git a/tasks/t45-z_ai_glm_4.rb b/tasks/t45-z_ai_glm_4.rb new file mode 100644 index 0000000..2151787 --- /dev/null +++ b/tasks/t45-z_ai_glm_4.rb @@ -0,0 +1,5 @@ + + +def triangle_area(a, h) + (a * h) / 2.0 +end \ No newline at end of file diff --git a/tasks/t46-z_ai_glm_4.rb b/tasks/t46-z_ai_glm_4.rb new file mode 100644 index 0000000..adcd478 --- /dev/null +++ b/tasks/t46-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +def fib4(n) + return [0, 0, 2, 0][n] if n < 4 + + a, b, c, d = 0, 0, 2, 0 + (4..n).each do + a, b, c, d = b, c, d, a + b + c + d + end + d +end \ No newline at end of file diff --git a/tasks/t47-z_ai_glm_4.rb b/tasks/t47-z_ai_glm_4.rb new file mode 100644 index 0000000..752f20a --- /dev/null +++ b/tasks/t47-z_ai_glm_4.rb @@ -0,0 +1,14 @@ + +def median(numbers) + raise ArgumentError, "List cannot be empty" if numbers.empty? + numbers.each { |num| raise ArgumentError, "All elements must be numbers" unless num.is_a?(Numeric) } + + sorted = numbers.sort + n = sorted.length + + if n.odd? + sorted[n / 2] + else + (sorted[n / 2 - 1] + sorted[n / 2]) / 2.0 + end +end \ No newline at end of file diff --git a/tasks/t48-z_ai_glm_4.rb b/tasks/t48-z_ai_glm_4.rb new file mode 100644 index 0000000..a512518 --- /dev/null +++ b/tasks/t48-z_ai_glm_4.rb @@ -0,0 +1,4 @@ +def is_palindrome?(text) + cleaned = text.downcase.gsub(/[^a-z0-9]/, '') + cleaned == cleaned.reverse +end \ No newline at end of file diff --git a/tasks/t49-z_ai_glm_4.rb b/tasks/t49-z_ai_glm_4.rb new file mode 100644 index 0000000..7496eb5 --- /dev/null +++ b/tasks/t49-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def modp(n, p) + 2.pow(n, p) +end \ No newline at end of file diff --git a/tasks/t5-z_ai_glm_4.rb b/tasks/t5-z_ai_glm_4.rb new file mode 100644 index 0000000..eec3be5 --- /dev/null +++ b/tasks/t5-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +def intersperse(numbers, delimeter) + return [] if numbers.empty? + + result = [] + numbers.each_with_index do |num, index| + result << num + result << delimeter unless index == numbers.length - 1 + end + result +end \ No newline at end of file diff --git a/tasks/t50-z_ai_glm_4.rb b/tasks/t50-z_ai_glm_4.rb new file mode 100644 index 0000000..91dfd07 --- /dev/null +++ b/tasks/t50-z_ai_glm_4.rb @@ -0,0 +1,7 @@ + +def decode_shift(s) + s.chars.map do |c| + # Получаем код символа, вычитаем код 'a', сдвигаем на 5 назад, берем модуль 26, добавляем код 'a' + ((c.ord - 'a'.ord - 5) % 26 + 'a'.ord).chr + end.join +end \ No newline at end of file diff --git a/tasks/t51-z_ai_glm_4.rb b/tasks/t51-z_ai_glm_4.rb new file mode 100644 index 0000000..ab4e1ea --- /dev/null +++ b/tasks/t51-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def remove_vowels(text) + text.gsub(/[aeiouAEIOU]/, '') +end \ No newline at end of file diff --git a/tasks/t52-z_ai_glm_4.rb b/tasks/t52-z_ai_glm_4.rb new file mode 100644 index 0000000..055ab8b --- /dev/null +++ b/tasks/t52-z_ai_glm_4.rb @@ -0,0 +1,3 @@ +def below_threshold(numbers, threshold) + numbers.all? { |num| num < threshold } +end \ No newline at end of file diff --git a/tasks/t53-z_ai_glm_4.rb b/tasks/t53-z_ai_glm_4.rb new file mode 100644 index 0000000..b4b4e1c --- /dev/null +++ b/tasks/t53-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def add(x, y) + x + y +end \ No newline at end of file diff --git a/tasks/t54-z_ai_glm_4.rb b/tasks/t54-z_ai_glm_4.rb new file mode 100644 index 0000000..e6ab514 --- /dev/null +++ b/tasks/t54-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def same_chars?(s0, s1) + s0.downcase.chars.uniq.sort == s1.downcase.chars.uniq.sort +end \ No newline at end of file diff --git a/tasks/t55-z_ai_glm_4.rb b/tasks/t55-z_ai_glm_4.rb new file mode 100644 index 0000000..9508cc3 --- /dev/null +++ b/tasks/t55-z_ai_glm_4.rb @@ -0,0 +1,9 @@ + +def fib(n) + return 1 if n <= 2 + a, b = 1, 1 + (3..n).each do + a, b = b, a + b + end + b +end \ No newline at end of file diff --git a/tasks/t56-z_ai_glm_4.rb b/tasks/t56-z_ai_glm_4.rb new file mode 100644 index 0000000..e48f461 --- /dev/null +++ b/tasks/t56-z_ai_glm_4.rb @@ -0,0 +1,13 @@ + +correct_bracketing(brackets) + balance = 0 + brackets.each_char do |char| + if char == '<' + balance += 1 + elsif char == '>' + balance -= 1 + end + return false if balance < 0 + end + balance == 0 +end \ No newline at end of file diff --git a/tasks/t57-z_ai_glm_4.rb b/tasks/t57-z_ai_glm_4.rb new file mode 100644 index 0000000..8a41768 --- /dev/null +++ b/tasks/t57-z_ai_glm_4.rb @@ -0,0 +1,19 @@ + +def monotonic?(arr) + return true if arr.length <= 1 + + increasing = true + decreasing = true + + (0...arr.length - 1).each do |i| + if arr[i] > arr[i+1] + increasing = false + end + if arr[i] < arr[i+1] + decreasing = false + end + break if !increasing && !decreasing + end + + increasing || decreasing +end \ No newline at end of file diff --git a/tasks/t58-z_ai_glm_4.rb b/tasks/t58-z_ai_glm_4.rb new file mode 100644 index 0000000..d78cef1 --- /dev/null +++ b/tasks/t58-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def common(l1, l2) + (l1 & l2).sort +end \ No newline at end of file diff --git a/tasks/t59-z_ai_glm_4.rb b/tasks/t59-z_ai_glm_4.rb new file mode 100644 index 0000000..cfccd7c --- /dev/null +++ b/tasks/t59-z_ai_glm_4.rb @@ -0,0 +1,24 @@ + +def largest_prime_factor(n) + largest_prime = -1 + + while n % 2 == 0 + largest_prime = 2 + n /= 2 + end + + factor = 3 + while factor * factor <= n + while n % factor == 0 + largest_prime = factor + n /= factor + end + factor += 2 + end + + if n > 1 + largest_prime = n + end + + largest_prime +end \ No newline at end of file diff --git a/tasks/t6-z_ai_glm_4.rb b/tasks/t6-z_ai_glm_4.rb new file mode 100644 index 0000000..ecf08a4 --- /dev/null +++ b/tasks/t6-z_ai_glm_4.rb @@ -0,0 +1,25 @@ + +def parse_nested_parens(paren_string) + return [] if paren_string.empty? + + groups = paren_string.split + result = [] + + groups.each do |group| + current_depth = 0 + max_depth = 0 + + group.each_char do |char| + if char == '(' + current_depth += 1 + max_depth = current_depth if current_depth > max_depth + elsif char == ')' + current_depth -= 1 + end + end + + result << max_depth + end + + result +end \ No newline at end of file diff --git a/tasks/t60-z_ai_glm_4.rb b/tasks/t60-z_ai_glm_4.rb new file mode 100644 index 0000000..29b8a2f --- /dev/null +++ b/tasks/t60-z_ai_glm_4.rb @@ -0,0 +1,5 @@ + +def sum_to_n(n) + return 0 if n <= 0 + n * (n + 1) / 2 +end \ No newline at end of file diff --git a/tasks/t61-z_ai_glm_4.rb b/tasks/t61-z_ai_glm_4.rb new file mode 100644 index 0000000..d4fd8d1 --- /dev/null +++ b/tasks/t61-z_ai_glm_4.rb @@ -0,0 +1,13 @@ + +correct_bracketing(brackets) + balance = 0 + brackets.each_char do |char| + if char == '(' + balance += 1 + elsif char == ')' + balance -= 1 + return false if balance < 0 + end + end + balance == 0 +end \ No newline at end of file diff --git a/tasks/t62-z_ai_glm_4.rb b/tasks/t62-z_ai_glm_4.rb new file mode 100644 index 0000000..7fca31d --- /dev/null +++ b/tasks/t62-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def derivative(coefficients) + coefficients[1..-1].map.with_index(1) { |coef, i| coef * i } +end \ No newline at end of file diff --git a/tasks/t63-z_ai_glm_4.rb b/tasks/t63-z_ai_glm_4.rb new file mode 100644 index 0000000..e0966b7 --- /dev/null +++ b/tasks/t63-z_ai_glm_4.rb @@ -0,0 +1,12 @@ + +def fibfib(n) + return 0 if n <= 1 + return 1 if n == 2 + + a, b, c = 0, 0, 1 + (3..n).each do + next_val = a + b + c + a, b, c = b, c, next_val + end + c +end \ No newline at end of file diff --git a/tasks/t64-z_ai_glm_4.rb b/tasks/t64-z_ai_glm_4.rb new file mode 100644 index 0000000..70effe4 --- /dev/null +++ b/tasks/t64-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +def vowels_count(word) + return 0 if word.empty? + + word_lower = word.downcase + count = word_lower.count('aeiou') + + count += 1 if word_lower[-1] == 'y' + + count +end \ No newline at end of file diff --git a/tasks/t65-z_ai_glm_4.rb b/tasks/t65-z_ai_glm_4.rb new file mode 100644 index 0000000..75bb1dc --- /dev/null +++ b/tasks/t65-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +def circular_shift(x, shift) + s = x.to_s + n = s.length + if shift > n + s.reverse + else + s[-shift..-1] + s[0...n-shift] + end +end \ No newline at end of file diff --git a/tasks/t66-z_ai_glm_4.rb b/tasks/t66-z_ai_glm_4.rb new file mode 100644 index 0000000..7502727 --- /dev/null +++ b/tasks/t66-z_ai_glm_4.rb @@ -0,0 +1,9 @@ +def digit_sum(s) + sum = 0 + s.each_char do |char| + if char >= 'A' && char <= 'Z' + sum += char.ord + end + end + sum +end \ No newline at end of file diff --git a/tasks/t67-z_ai_glm_4.rb b/tasks/t67-z_ai_glm_4.rb new file mode 100644 index 0000000..ebd0085 --- /dev/null +++ b/tasks/t67-z_ai_glm_4.rb @@ -0,0 +1,8 @@ + +def fruit_distribution(fruit_string, total_fruits) + match_data = fruit_string.match(/^(\d+) apples and (\d+) oranges$/) + apples = match_data[1].to_i + oranges = match_data[2].to_i + mangoes = total_fruits - (apples + oranges) + mangoes < 0 ? 0 : mangoes +end \ No newline at end of file diff --git a/tasks/t68-z_ai_glm_4.rb b/tasks/t68-z_ai_glm_4.rb new file mode 100644 index 0000000..960b185 --- /dev/null +++ b/tasks/t68-z_ai_glm_4.rb @@ -0,0 +1,16 @@ + +def pluck(arr) + min_value = nil + min_index = nil + + arr.each_with_index do |num, index| + if num.even? + if min_value.nil? || num < min_value + min_value = num + min_index = index + end + end + end + + min_value.nil? ? [] : [min_value, min_index] +end \ No newline at end of file diff --git a/tasks/t69-z_ai_glm_4.rb b/tasks/t69-z_ai_glm_4.rb new file mode 100644 index 0000000..312ef04 --- /dev/null +++ b/tasks/t69-z_ai_glm_4.rb @@ -0,0 +1,17 @@ + +def search(lst) + freq = Hash.new(0) + lst.each { |num| freq[num] += 1 } + + max_freq = freq.values.max + + max_candidate = -1 + freq.each_key do |x| + next if x > max_freq + if freq[x] >= x && x > max_candidate + max_candidate = x + end + end + + max_candidate +end \ No newline at end of file diff --git a/tasks/t7-z_ai_glm_4.rb b/tasks/t7-z_ai_glm_4.rb new file mode 100644 index 0000000..92d2440 --- /dev/null +++ b/tasks/t7-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def filter_by_substring(strings, substring) + strings.select { |s| s.include?(substring) } +end \ No newline at end of file diff --git a/tasks/t70-z_ai_glm_4.rb b/tasks/t70-z_ai_glm_4.rb new file mode 100644 index 0000000..e393c1c --- /dev/null +++ b/tasks/t70-z_ai_glm_4.rb @@ -0,0 +1,17 @@ + +def strange_sort_list(lst) + sorted = lst.sort + result = [] + left = 0 + right = sorted.length - 1 + while left <= right + if result.size.even? + result << sorted[left] + left += 1 + else + result << sorted[right] + right -= 1 + end + end + result +end \ No newline at end of file diff --git a/tasks/t71-z_ai_glm_4.rb b/tasks/t71-z_ai_glm_4.rb new file mode 100644 index 0000000..a732125 --- /dev/null +++ b/tasks/t71-z_ai_glm_4.rb @@ -0,0 +1,9 @@ + +def triangle_area(a, b, c) + return -1 if a <= 0 || b <= 0 || c <= 0 + return -1 unless a + b > c && a + c > b && b + c > a + + s = (a + b + c) / 2.0 + area = Math.sqrt(s * (s - a) * (s - b) * (s - c)) + area.round(2) +end \ No newline at end of file diff --git a/tasks/t72-z_ai_glm_4.rb b/tasks/t72-z_ai_glm_4.rb new file mode 100644 index 0000000..2757ea8 --- /dev/null +++ b/tasks/t72-z_ai_glm_4.rb @@ -0,0 +1,5 @@ +def will_it_fly?(q, w) + balanced = q == q.reverse + total_weight = q.sum + balanced && total_weight <= w +end \ No newline at end of file diff --git a/tasks/t73-z_ai_glm_4.rb b/tasks/t73-z_ai_glm_4.rb new file mode 100644 index 0000000..587fa18 --- /dev/null +++ b/tasks/t73-z_ai_glm_4.rb @@ -0,0 +1,14 @@ + +def smallest_change(arr) + changes = 0 + left = 0 + right = arr.length - 1 + while left < right + if arr[left] != arr[right] + changes += 1 + end + left += 1 + right -= 1 + end + changes +end \ No newline at end of file diff --git a/tasks/t74-z_ai_glm_4.rb b/tasks/t74-z_ai_glm_4.rb new file mode 100644 index 0000000..f74cb6c --- /dev/null +++ b/tasks/t74-z_ai_glm_4.rb @@ -0,0 +1,7 @@ + + +def total_match(lst1, lst2) + total1 = lst1.sum { |s| s.length } + total2 = lst2.sum { |s| s.length } + total1 <= total2 ? lst1 : lst2 +end \ No newline at end of file diff --git a/tasks/t75-z_ai_glm_4.rb b/tasks/t75-z_ai_glm_4.rb new file mode 100644 index 0000000..0f52265 --- /dev/null +++ b/tasks/t75-z_ai_glm_4.rb @@ -0,0 +1,24 @@ + +def is_multiply_prime?(a) + return false if a < 30 + + factors = [] + temp = a + d = 2 + while d * d <= temp + if temp % d == 0 + factors << d + temp /= d + while temp % d == 0 + temp /= d + end + end + d += 1 + end + factors << temp if temp > 1 + + return false if factors.size != 3 + + product = factors.inject(1) { |prod, factor| prod * factor } + product == a +end \ No newline at end of file diff --git a/tasks/t76-z_ai_glm_4.rb b/tasks/t76-z_ai_glm_4.rb new file mode 100644 index 0000000..819b486 --- /dev/null +++ b/tasks/t76-z_ai_glm_4.rb @@ -0,0 +1,40 @@ + +def is_simple_power?(x, n) + if x == 0 + return false + end + if n == 0 + return false + end + if x == 1 + return true + end + if n == 1 + return false + end + + low_exp = 0 + high_exp = 1 + current_high = n + + while current_high < x + low_exp = high_exp + high_exp *= 2 + current_high = current_high * current_high + end + + while low_exp <= high_exp + mid_exp = (low_exp + high_exp) // 2 + mid_val = n ** mid_exp + + if mid_val == x + return true + elsif mid_val < x + low_exp = mid_exp + 1 + else + high_exp = mid_exp - 1 + end + end + + false +end \ No newline at end of file diff --git a/tasks/t77-z_ai_glm_4.rb b/tasks/t77-z_ai_glm_4.rb new file mode 100644 index 0000000..746954f --- /dev/null +++ b/tasks/t77-z_ai_glm_4.rb @@ -0,0 +1,28 @@ + +def is_cube?(a) + return true if a == 0 + + abs_a = a.abs + + high = 1 + while high ** 3 < abs_a + high *= 2 + end + + low = high / 2 + + while low <= high + mid = (low + high) / 2 + mid_cubed = mid * mid * mid + + if mid_cubed == abs_a + return true + elsif mid_cubed < abs_a + low = mid + 1 + else + high = mid - 1 + end + end + + false +end \ No newline at end of file diff --git a/tasks/t78-z_ai_glm_4.rb b/tasks/t78-z_ai_glm_4.rb new file mode 100644 index 0000000..5e00a91 --- /dev/null +++ b/tasks/t78-z_ai_glm_4.rb @@ -0,0 +1,8 @@ + + +def hex_key(hex_string) + primes = ['2', '3', '5', '7', 'B', 'D'] + count = 0 + hex_string.each_char { |c| count += 1 if primes.include?(c) } + count +end \ No newline at end of file diff --git a/tasks/t79-z_ai_glm_4.rb b/tasks/t79-z_ai_glm_4.rb new file mode 100644 index 0000000..87237cc --- /dev/null +++ b/tasks/t79-z_ai_glm_4.rb @@ -0,0 +1,5 @@ + +def decimal_to_binary(decimal) + binary_string = decimal.to_s(2) + "db#{binary_string}db" +end \ No newline at end of file diff --git a/tasks/t8-z_ai_glm_4.rb b/tasks/t8-z_ai_glm_4.rb new file mode 100644 index 0000000..1caf3fd --- /dev/null +++ b/tasks/t8-z_ai_glm_4.rb @@ -0,0 +1,6 @@ + +def sum_product(numbers) + sum = numbers.inject(0, :+) + product = numbers.inject(1, :*) + [sum, product] +end \ No newline at end of file diff --git a/tasks/t80-z_ai_glm_4.rb b/tasks/t80-z_ai_glm_4.rb new file mode 100644 index 0000000..ad2baac --- /dev/null +++ b/tasks/t80-z_ai_glm_4.rb @@ -0,0 +1,15 @@ + +def is_happy?(s) + return false if s.length < 3 + + s_lower = s.downcase + + (0..(s_lower.length - 3)).each do |i| + a = s_lower[i] + b = s_lower[i+1] + c = s_lower[i+2] + return false if a == b || a == c || b == c + end + + true +end \ No newline at end of file diff --git a/tasks/t81-z_ai_glm_4.rb b/tasks/t81-z_ai_glm_4.rb new file mode 100644 index 0000000..a7ac3c5 --- /dev/null +++ b/tasks/t81-z_ai_glm_4.rb @@ -0,0 +1,36 @@ + +_letter_grade(grades) + grades.map do |grade| + unless (0.0..4.0).include?(grade) + raise ArgumentError, "Grade #{grade} is out of range [0.0, 4.0]" + end + + if grade == 4.0 + "A+" + elsif grade > 3.7 + "A" + elsif grade > 3.3 + "A-" + elsif grade >= 3.0 + "B+" + elsif grade >= 2.5 + "B" + elsif grade > 2.3 + "B-" + elsif grade >= 2.0 + "C+" + elsif grade >= 1.7 + "C" + elsif grade >= 1.2 + "C-" + elsif grade >= 1.0 + "D+" + elsif grade >= 0.7 + "D" + elsif grade > 0.0 + "D-" + else + "E" + end + end +end \ No newline at end of file diff --git a/tasks/t82-z_ai_glm_4.rb b/tasks/t82-z_ai_glm_4.rb new file mode 100644 index 0000000..2a39300 --- /dev/null +++ b/tasks/t82-z_ai_glm_4.rb @@ -0,0 +1,9 @@ + +_length?(string) + n = string.length + return false if n < 2 + (2..Math.sqrt(n).to_i).each do |i| + return false if n % i == 0 + end + true +end \ No newline at end of file diff --git a/tasks/t83-z_ai_glm_4.rb b/tasks/t83-z_ai_glm_4.rb new file mode 100644 index 0000000..570a094 --- /dev/null +++ b/tasks/t83-z_ai_glm_4.rb @@ -0,0 +1,8 @@ + +def starts_one_ends(n) + if n == 1 + 2 + else + 18 * (10 ** (n-2)) + end +end \ No newline at end of file diff --git a/tasks/t84-z_ai_glm_4.rb b/tasks/t84-z_ai_glm_4.rb new file mode 100644 index 0000000..5c269f3 --- /dev/null +++ b/tasks/t84-z_ai_glm_4.rb @@ -0,0 +1,5 @@ + +def sum_binary_digits(n) + sum = n.to_s.chars.map(&:to_i).sum + sum.to_s(2) +end \ No newline at end of file diff --git a/tasks/t85-z_ai_glm_4.rb b/tasks/t85-z_ai_glm_4.rb new file mode 100644 index 0000000..29b5619 --- /dev/null +++ b/tasks/t85-z_ai_glm_4.rb @@ -0,0 +1,10 @@ + +def add_even_at_odd(lst) + sum = 0 + lst.each_with_index do |num, index| + if index.odd? && num.even? + sum += num + end + end + sum +end \ No newline at end of file diff --git a/tasks/t86-z_ai_glm_4.rb b/tasks/t86-z_ai_glm_4.rb new file mode 100644 index 0000000..86dbd09 --- /dev/null +++ b/tasks/t86-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +anti_shuffle(s) + tokens = s.split(/( +)/) + tokens.map do |token| + if token.strip.empty? + token + else + token.chars.sort.join + end + end.join +end \ No newline at end of file diff --git a/tasks/t87-z_ai_glm_4.rb b/tasks/t87-z_ai_glm_4.rb new file mode 100644 index 0000000..3a49c14 --- /dev/null +++ b/tasks/t87-z_ai_glm_4.rb @@ -0,0 +1,12 @@ + +def get_row(lst, x) + result = [] + lst.each_with_index do |row, i| + row.each_with_index do |elem, j| + if elem == x + result << [i, j] + end + end + end + result.sort_by { |coord| [coord[0], -coord[1]] } +end \ No newline at end of file diff --git a/tasks/t88-z_ai_glm_4.rb b/tasks/t88-z_ai_glm_4.rb new file mode 100644 index 0000000..0e3729f --- /dev/null +++ b/tasks/t88-z_ai_glm_4.rb @@ -0,0 +1,14 @@ + + +def sort_array(array) + return array.dup if array.empty? || array.size == 1 + + sum = array.first + array.last + sorted = array.dup + + if sum.odd? + sorted.sort + else + sorted.sort.reverse + end +end \ No newline at end of file diff --git a/tasks/t89-z_ai_glm_4.rb b/tasks/t89-z_ai_glm_4.rb new file mode 100644 index 0000000..5cd18b7 --- /dev/null +++ b/tasks/t89-z_ai_glm_4.rb @@ -0,0 +1,10 @@ +def encrypt(s) + result = '' + s.each_char do |c| + base = 'a'.ord + current_index = c.ord - base + new_index = (current_index + 4) % 26 + result << (base + new_index).chr + end + result +end \ No newline at end of file diff --git a/tasks/t9-z_ai_glm_4.rb b/tasks/t9-z_ai_glm_4.rb new file mode 100644 index 0000000..e7bf319 --- /dev/null +++ b/tasks/t9-z_ai_glm_4.rb @@ -0,0 +1,14 @@ + +def rolling_max(numbers) + return [] if numbers.empty? + + result = [] + current_max = numbers.first + + numbers.each do |num| + current_max = num if num > current_max + result << current_max + end + + result +end \ No newline at end of file diff --git a/tasks/t90-z_ai_glm_4.rb b/tasks/t90-z_ai_glm_4.rb new file mode 100644 index 0000000..5f37480 --- /dev/null +++ b/tasks/t90-z_ai_glm_4.rb @@ -0,0 +1,4 @@ +def next_smallest(list) + unique_sorted = list.uniq.sort + unique_sorted.size < 2 ? nil : unique_sorted[1] +end \ No newline at end of file diff --git a/tasks/t91-z_ai_glm_4.rb b/tasks/t91-z_ai_glm_4.rb new file mode 100644 index 0000000..5e0b154 --- /dev/null +++ b/tasks/t91-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +def count_boredoms(text) + segments = text.split(/[.!?]/) + count = 0 + segments.each do |segment| + stripped = segment.strip + next if stripped.empty? + count += 1 if stripped.match?(/^I\b/) + end + count +end \ No newline at end of file diff --git a/tasks/t92-z_ai_glm_4.rb b/tasks/t92-z_ai_glm_4.rb new file mode 100644 index 0000000..ab8e761 --- /dev/null +++ b/tasks/t92-z_ai_glm_4.rb @@ -0,0 +1,4 @@ +def any_int?(x, y, z) + return false unless x.is_a?(Integer) && y.is_a?(Integer) && z.is_a?(Integer) + x == y + z || y == x + z || z == x + y +end \ No newline at end of file diff --git a/tasks/t93-z_ai_glm_4.rb b/tasks/t93-z_ai_glm_4.rb new file mode 100644 index 0000000..5a52a26 --- /dev/null +++ b/tasks/t93-z_ai_glm_4.rb @@ -0,0 +1,18 @@ +def encode(message) + step1 = message.swapcase + result = '' + vowels_lower = 'aeiou' + vowels_upper = 'AEIOU' + + step1.each_char do |char| + if vowels_lower.include?(char) + result << (char.ord + 2).chr + elsif vowels_upper.include?(char) + result << (char.ord + 2).chr + else + result << char + end + end + + result +end \ No newline at end of file diff --git a/tasks/t94-z_ai_glm_4.rb b/tasks/t94-z_ai_glm_4.rb new file mode 100644 index 0000000..341872c --- /dev/null +++ b/tasks/t94-z_ai_glm_4.rb @@ -0,0 +1,14 @@ +def is_prime?(n) + return false if n < 2 + (2..Math.sqrt(n).to_i).each do |i| + return false if n % i == 0 + end + true +end + +def sum_largest_prime_digits(numbers) + primes = numbers.select { |num| is_prime?(num) } + return 0 if primes.empty? + largest_prime = primes.max + largest_prime.to_s.chars.map(&:to_i).sum +end \ No newline at end of file diff --git a/tasks/t95-z_ai_glm_4.rb b/tasks/t95-z_ai_glm_4.rb new file mode 100644 index 0000000..bc94076 --- /dev/null +++ b/tasks/t95-z_ai_glm_4.rb @@ -0,0 +1,11 @@ +def check_dict_case(hash) + keys = hash.keys + return false if keys.empty? + + return false unless keys.all? { |key| key.is_a?(String) } + + all_lower = keys.all? { |key| key == key.downcase } + all_upper = keys.all? { |key| key == key.upcase } + + all_lower || all_upper +end \ No newline at end of file diff --git a/tasks/t96-z_ai_glm_4.rb b/tasks/t96-z_ai_glm_4.rb new file mode 100644 index 0000000..60583be --- /dev/null +++ b/tasks/t96-z_ai_glm_4.rb @@ -0,0 +1,22 @@ +def count_up_to(n) + return [] if n <= 1 + + sieve = Array.new(n, true) + sieve[0] = false + sieve[1] = false + + (2..Math.sqrt(n).to_i).each do |i| + if sieve[i] + (i * i...n).step(i) do |j| + sieve[j] = false + end + end + end + + primes = [] + (2...n).each do |i| + primes << i if sieve[i] + end + + primes +end \ No newline at end of file diff --git a/tasks/t97-z_ai_glm_4.rb b/tasks/t97-z_ai_glm_4.rb new file mode 100644 index 0000000..4726254 --- /dev/null +++ b/tasks/t97-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def multiply(a, b) + (a.abs % 10) * (b.abs % 10) +end \ No newline at end of file diff --git a/tasks/t98-z_ai_glm_4.rb b/tasks/t98-z_ai_glm_4.rb new file mode 100644 index 0000000..8b2d50a --- /dev/null +++ b/tasks/t98-z_ai_glm_4.rb @@ -0,0 +1,11 @@ + +def count_upper(s) + vowels = %w[A E I O U] + count = 0 + s.each_char.with_index do |char, index| + if index.even? && vowels.include?(char) + count += 1 + end + end + count +end \ No newline at end of file diff --git a/tasks/t99-z_ai_glm_4.rb b/tasks/t99-z_ai_glm_4.rb new file mode 100644 index 0000000..046efa2 --- /dev/null +++ b/tasks/t99-z_ai_glm_4.rb @@ -0,0 +1,4 @@ + +def closest_integer(value) + value.to_f.round(half: :up) +end \ No newline at end of file
МодельУспешность
google_gemma_3_27b_it77%
deepseek_deepseek_chat77%
qwen_qwen_2_5_coder_32b_instruct75%
mistralai_codestral_250175%
google_gemini_flash_1_575%
inception_mercury_coder_small_beta74%
mistralai_codestral_250175%
qwen_qwen3_235b_a22b74%
z_ai_glm_474%
inception_mercury_coder_small_beta74%
google_gemma_3_12b_it71%
meta_llama_llama_3_1_70b_instruct69%
mistralai_mistral_small_3_1_24b_instruct67%