Files
KF-OnlineJudge/frontend/src/data/performancePreview.ts
T

105 lines
2.8 KiB
TypeScript

import type { DistributionPoint } from '../lib/performance'
import type { Submission } from './preview'
interface PerformancePreview {
problemId: string
language: string
time: DistributionPoint[]
memory: DistributionPoint[]
}
// Fixed display fixtures, independent of real judge results. Memory values use KiB.
const previews: PerformancePreview[] = [
{
problemId: '1001',
language: 'Rust',
time: [
{ value: 0, count: 8 },
{ value: 4, count: 12 },
{ value: 8, count: 25 },
{ value: 12, count: 16 },
{ value: 16, count: 34 },
{ value: 20, count: 46 },
{ value: 24, count: 29 },
{ value: 28, count: 18 },
{ value: 32, count: 13 },
{ value: 40, count: 9 },
{ value: 48, count: 6 },
{ value: 64, count: 4 },
],
memory: [
{ value: 1024, count: 7 },
{ value: 1536, count: 19 },
{ value: 2048, count: 58 },
{ value: 2560, count: 41 },
{ value: 3072, count: 34 },
{ value: 3584, count: 22 },
{ value: 4096, count: 15 },
{ value: 5120, count: 13 },
{ value: 6144, count: 7 },
{ value: 8192, count: 4 },
],
},
{
problemId: '1002',
language: 'Python',
time: [
{ value: 24, count: 3 },
{ value: 32, count: 8 },
{ value: 40, count: 16 },
{ value: 48, count: 28 },
{ value: 56, count: 39 },
{ value: 64, count: 31 },
{ value: 72, count: 24 },
{ value: 80, count: 18 },
{ value: 96, count: 11 },
{ value: 112, count: 6 },
{ value: 128, count: 4 },
],
memory: [
{ value: 5120, count: 6 },
{ value: 6144, count: 18 },
{ value: 7168, count: 46 },
{ value: 8192, count: 53 },
{ value: 9216, count: 31 },
{ value: 10240, count: 19 },
{ value: 12288, count: 9 },
{ value: 14336, count: 6 },
],
},
{
problemId: '1003',
language: 'C++',
time: [
{ value: 16, count: 8 },
{ value: 24, count: 16 },
{ value: 34, count: 21 },
{ value: 40, count: 32 },
{ value: 48, count: 41 },
{ value: 56, count: 28 },
{ value: 64, count: 19 },
{ value: 80, count: 12 },
{ value: 96, count: 7 },
{ value: 120, count: 4 },
],
memory: [
{ value: 2048, count: 9 },
{ value: 3072, count: 24 },
{ value: 4096, count: 51 },
{ value: 5120, count: 47 },
{ value: 6144, count: 29 },
{ value: 8192, count: 17 },
{ value: 10240, count: 8 },
{ value: 12288, count: 3 },
],
},
]
export function findPerformancePreview(submission: Submission) {
if (submission.verdict !== 'AC') return undefined
return previews.find(
(preview) =>
preview.problemId === submission.problemId && preview.language === submission.language,
)
}