mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 22:37:10 +00:00
Merge branch 'master' of gitlab.prodcontest.ru:team-15/project
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
# Generated by Django 5.1.6 on 2025-03-03 23:02
|
||||||
|
|
||||||
|
import django.core.validators
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('task', '0003_alter_competitiontaskattachment_task'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='competitiontaskattachment',
|
||||||
|
name='bind_at',
|
||||||
|
field=models.CharField(max_length=255, validators=[django.core.validators.RegexValidator('^(?:[a-zA-Z]:\\\\(?:[^<>:\\"\\/\\\\|?*]*\\\\)*|/(?:[^<>:\\"\\/\\\\|?*]+/?)*)$', message='Введите абсолютный путь до папки')], verbose_name='путь сохранения'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -35,7 +35,7 @@ def analyze_data_task(self, submission_id):
|
|||||||
"code": base64.b64encode(code).decode("utf-8"),
|
"code": base64.b64encode(code).decode("utf-8"),
|
||||||
"answer_file_path": submission.task.answer_file_path,
|
"answer_file_path": submission.task.answer_file_path,
|
||||||
"expected_hash": hashlib.sha256(
|
"expected_hash": hashlib.sha256(
|
||||||
submission.task.correct_answer_file.read().decode("utf-8")
|
submission.task.correct_answer_file.read()
|
||||||
).hexdigest(),
|
).hexdigest(),
|
||||||
},
|
},
|
||||||
timeout=30,
|
timeout=30,
|
||||||
|
|||||||
+97
-3
@@ -1,6 +1,13 @@
|
|||||||
import React, { useRef, useEffect, useState } from 'react';
|
import React, { useRef, useEffect, useState } from 'react';
|
||||||
import * as monaco from 'monaco-editor';
|
import * as monaco from 'monaco-editor';
|
||||||
import { Copy, Check } from 'lucide-react';
|
import { Copy, Check, Info } from 'lucide-react';
|
||||||
|
import {
|
||||||
|
Dialog,
|
||||||
|
DialogContent,
|
||||||
|
DialogHeader,
|
||||||
|
DialogTitle,
|
||||||
|
DialogTrigger,
|
||||||
|
} from "@/components/ui/dialog";
|
||||||
|
|
||||||
interface CodeSolutionProps {
|
interface CodeSolutionProps {
|
||||||
answer: string;
|
answer: string;
|
||||||
@@ -92,17 +99,104 @@ const CodeSolution: React.FC<CodeSolutionProps> = ({
|
|||||||
<div className="bg-white rounded-lg overflow-hidden border border-gray-200">
|
<div className="bg-white rounded-lg overflow-hidden border border-gray-200">
|
||||||
<div className="flex items-center justify-between bg-gray-50 px-4 py-2 border-b border-gray-200">
|
<div className="flex items-center justify-between bg-gray-50 px-4 py-2 border-b border-gray-200">
|
||||||
<div className="text-sm font-medium text-gray-600">{languageDisplay}</div>
|
<div className="text-sm font-medium text-gray-600">{languageDisplay}</div>
|
||||||
|
<div className="flex items-center space-x-3">
|
||||||
|
<Dialog>
|
||||||
|
<DialogTrigger asChild>
|
||||||
|
<button
|
||||||
|
className="flex items-center text-sm text-gray-500 hover:text-gray-700 transition-colors"
|
||||||
|
title="Информация о среде выполнения"
|
||||||
|
>
|
||||||
|
<Info className="w-4 h-4" />
|
||||||
|
</button>
|
||||||
|
</DialogTrigger>
|
||||||
|
<DialogContent className="sm:max-w-md">
|
||||||
|
<DialogHeader>
|
||||||
|
<DialogTitle className="text-xl font-semibold">Информация о среде выполнения</DialogTitle>
|
||||||
|
</DialogHeader>
|
||||||
|
|
||||||
|
<div className="mt-4 space-y-6">
|
||||||
|
<div>
|
||||||
|
<h3 className="text-lg font-semibold mb-3 text-indigo-700 border-b pb-2">Ограничения</h3>
|
||||||
|
<ul className="space-y-3 text-gray-700">
|
||||||
|
<li className="flex items-start">
|
||||||
|
<div className="bg-indigo-100 p-1.5 rounded-full mr-3 mt-0.5">
|
||||||
|
<div className="w-1.5 h-1.5 bg-indigo-500 rounded-full"></div>
|
||||||
|
</div>
|
||||||
|
Максимум 1 посылка в 10 секунд
|
||||||
|
</li>
|
||||||
|
<li className="flex items-start">
|
||||||
|
<div className="bg-indigo-100 p-1.5 rounded-full mr-3 mt-0.5">
|
||||||
|
<div className="w-1.5 h-1.5 bg-indigo-500 rounded-full"></div>
|
||||||
|
</div>
|
||||||
|
Максимальный размер решения 4MB
|
||||||
|
</li>
|
||||||
|
<li className="flex items-start">
|
||||||
|
<div className="bg-indigo-100 p-1.5 rounded-full mr-3 mt-0.5">
|
||||||
|
<div className="w-1.5 h-1.5 bg-indigo-500 rounded-full"></div>
|
||||||
|
</div>
|
||||||
|
Максимальное время работы программы 1 минута
|
||||||
|
</li>
|
||||||
|
<li className="flex items-start">
|
||||||
|
<div className="bg-indigo-100 p-1.5 rounded-full mr-3 mt-0.5">
|
||||||
|
<div className="w-1.5 h-1.5 bg-indigo-500 rounded-full"></div>
|
||||||
|
</div>
|
||||||
|
Выделяется 512MB на решение
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3 className="text-lg font-semibold mb-3 text-indigo-700 border-b pb-2">Доступные библиотеки</h3>
|
||||||
|
<div className="bg-gray-50 p-4 rounded-md font-mono text-sm">
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-2">
|
||||||
|
<div className="flex items-center">
|
||||||
|
<span className="text-indigo-600 font-semibold">pandas</span>
|
||||||
|
<span className="text-gray-500 ml-2">2.2.3</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center">
|
||||||
|
<span className="text-indigo-600 font-semibold">numpy</span>
|
||||||
|
<span className="text-gray-500 ml-2">2.2.3</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center">
|
||||||
|
<span className="text-indigo-600 font-semibold">matplotlib</span>
|
||||||
|
<span className="text-gray-500 ml-2">3.10.1</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center">
|
||||||
|
<span className="text-indigo-600 font-semibold">scipy</span>
|
||||||
|
<span className="text-gray-500 ml-2">1.15.2</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center">
|
||||||
|
<span className="text-indigo-600 font-semibold">scikit-learn</span>
|
||||||
|
<span className="text-gray-500 ml-2">1.6.1</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center">
|
||||||
|
<span className="text-indigo-600 font-semibold">seaborn</span>
|
||||||
|
<span className="text-gray-500 ml-2">0.13.2</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center">
|
||||||
|
<span className="text-indigo-600 font-semibold">statsmodels</span>
|
||||||
|
<span className="text-gray-500 ml-2">0.14.4</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</DialogContent>
|
||||||
|
</Dialog>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
onClick={copyToClipboard}
|
onClick={copyToClipboard}
|
||||||
className="flex items-center text-sm text-gray-500 hover:text-gray-700 transition-colors"
|
className="flex items-center text-sm text-gray-500 hover:text-gray-700 transition-colors"
|
||||||
|
title="Копировать код"
|
||||||
>
|
>
|
||||||
{copied ? (
|
{copied ? (
|
||||||
<Check className="w-4 h-4 mr-1" />
|
<Check className="w-4 h-4" />
|
||||||
) : (
|
) : (
|
||||||
<Copy className="w-4 h-4 mr-1" />
|
<Copy className="w-4 h-4" />
|
||||||
)}
|
)}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="p-4">
|
<div className="p-4">
|
||||||
<div
|
<div
|
||||||
|
|||||||
Reference in New Issue
Block a user