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, ) }