Files
LiquidCode_Frontend/src/views/mission/statement/Statement.tsx
Виталий Лавшонок 235b2c16bd statement
2025-11-02 15:33:10 +03:00

89 lines
3.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React, { useState } from "react";
import { cn } from "../../../lib/cn";
import LaTextContainer from "./LaTextContainer";
// import FullLatexRenderer from "./FullLatexRenderer";
export interface StatementData {
id?: number;
name?: string;
tags?: string[];
timeLimit?: number;
memoryLimit?: number;
legend?: string;
input?: string;
output?: string;
sampleTests?: { input: string; output: string }[];
notes?: string;
}
const Statement: React.FC<StatementData> = ({
id,
name,
tags,
timeLimit = 1000,
memoryLimit = 256 * 1024 * 1024,
legend = "",
input = "",
output = "",
sampleTests = [],
notes = "",
}) => {
return (
<div className="flex flex-col w-full h-full bg-red-3001 overflow-y-scroll medium-scrollbar pl-[20px] pr-[12px] gap-[20px]">
<div>
<p className="h-[50px] text-[40px] font-bold text-liquid-white">{name}</p>
<p className="h-[23px] text-[18px] font-bold text-liquid-light">Задача #{id}</p>
</div>
<div className="flex gap-[10px] w-full flex-wrap">
{tags && tags.map((v, i) => <div key={i} className="px-[16px] py-[8px] rounded-full bg-liquid-lighter ">{v}</div>)}
</div>
<div className="flex flex-col">
<p className="text-liquid-white h-[20px] text-[18px] font-bold"><span className="text-liquid-light">ограничение по времени на тест:</span> {timeLimit / 1000} секунда</p>
<p className="text-liquid-white h-[20px] text-[18px] font-bold"><span className="text-liquid-light">ограничение по памяти на тест:</span> {memoryLimit / 1024 / 1024} мегабайт</p>
<p className="text-liquid-white h-[20px] text-[18px] font-bold"><span className="text-liquid-light">ввод:</span> стандартный ввод</p>
<p className="text-liquid-white h-[20px] text-[18px] font-bold"><span className="text-liquid-light">вывод:</span> стандартный вывод</p>
</div>
<div className="flex flex-col gap-[10px]">
<LaTextContainer content={legend} />
</div>
<div className="flex flex-col gap-[10px]">
<div>Входные данные</div>
<LaTextContainer content={input} />
</div>
<div className="flex flex-col gap-[10px]">
<div>Выходные данные</div>
<LaTextContainer content={output} />
</div>
<div>
<div>{sampleTests.length == 1 ? "Пример" : "Примеры"}</div>
<div className="flex flex-col gap-[10px]">
{sampleTests.map((v, i) =>
<div key={i} className="flex flex-col gap-[10px]">
<div>Входные данные</div>
<div>{v.input}</div>
<div>Выходные данные</div>
<div>{v.output}</div>
</div>
)}
</div>
</div>
<div className="flex flex-col gap-[10px]">
<div>Примечание</div>
<LaTextContainer content={notes} />
<div>Автор: Jacks</div>
</div>
</div>
);
};
export default Statement;