@@ -263,6 +263,23 @@ impl std::fmt::Display for VerifyResult {
263
263
eca,
264
264
)
265
265
} else if !self . submit . compare_result . is_empty ( ) {
266
+ let ( mut rp, mut mp) = ( 0 , 0 ) ;
267
+ if let Some ( n) = & self . analyse . runtime_percentile {
268
+ if n. is_f64 ( ) {
269
+ rp = n. as_f64 ( ) . unwrap_or ( 0.0 ) as i64 ;
270
+ } else {
271
+ rp = n. as_i64 ( ) . unwrap_or ( 0 ) ;
272
+ }
273
+ }
274
+
275
+ if let Some ( n) = & self . analyse . memory_percentile {
276
+ if n. is_f64 ( ) {
277
+ mp = n. as_f64 ( ) . unwrap_or ( 0.0 ) as i64 ;
278
+ } else {
279
+ mp = n. as_i64 ( ) . unwrap_or ( 0 ) ;
280
+ }
281
+ }
282
+
266
283
// Submit Successfully
267
284
write ! (
268
285
f,
@@ -271,12 +288,7 @@ impl std::fmt::Display for VerifyResult {
271
288
" Runtime: " . dimmed( ) ,
272
289
& self . status. status_runtime. bold( ) ,
273
290
", faster than " ,
274
- & self
275
- . analyse
276
- . runtime_percentile
277
- . unwrap_or( 0 )
278
- . to_string( )
279
- . bold( ) ,
291
+ rp. to_string( ) . bold( ) ,
280
292
"% " . bold( ) ,
281
293
"of " ,
282
294
& self . pretty_lang,
@@ -286,12 +298,7 @@ impl std::fmt::Display for VerifyResult {
286
298
" Memory Usage: " . dimmed( ) ,
287
299
& self . status. status_memory. bold( ) ,
288
300
", less than " ,
289
- & self
290
- . analyse
291
- . memory_percentile
292
- . unwrap_or( 0 )
293
- . to_string( )
294
- . bold( ) ,
301
+ mp. to_string( ) . bold( ) ,
295
302
"% " . bold( ) ,
296
303
"of " ,
297
304
& self . pretty_lang,
@@ -338,6 +345,7 @@ use verify::*;
338
345
mod verify {
339
346
use super :: super :: parser:: ssr;
340
347
use serde:: Deserialize ;
348
+ use serde_json:: Number ;
341
349
342
350
#[ derive( Debug , Default , Deserialize ) ]
343
351
pub struct Submit {
@@ -362,13 +370,13 @@ mod verify {
362
370
#[ derive( Debug , Default , Deserialize ) ]
363
371
pub struct Analyse {
364
372
#[ serde( default ) ]
365
- pub total_correct : Option < i32 > ,
373
+ pub total_correct : Option < Number > ,
366
374
#[ serde( default ) ]
367
- pub total_testcases : Option < i32 > ,
375
+ pub total_testcases : Option < Number > ,
368
376
#[ serde( default ) ]
369
- pub runtime_percentile : Option < i32 > ,
377
+ pub runtime_percentile : Option < Number > ,
370
378
#[ serde( default ) ]
371
- pub memory_percentile : Option < i32 > ,
379
+ pub memory_percentile : Option < Number > ,
372
380
}
373
381
374
382
#[ derive( Debug , Default , Deserialize ) ]
0 commit comments