CSES - Datatähti 2018 alku - Results
Submission details
Task:Kyselyt
Sender:yhyy
Submission time:2017-10-06 21:45:42 +0300
Language:Assembly
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.06 s1details
#20.08 s2details
#30.05 s3details

Code

section .data
section .bss
syote resb 30000000 ; syöte
buf resb 90090000 ; tuloste
asd resb 1
section .text
global _start
_start:
mov eax, 3
mov ebx, 0
mov ecx, syote
mov edx, 30000000
int 0x80 ; lue syöte
mov rsi, syote
mov rdi, buf
call read
mov r15, rax ; n
.lopeta:
call flush
mov rax, 1
mov rbx, 0
int 0x80
;) ****************** flush ********************* (;
; suoritetaan lopussa niin buf tulostuu
flush: ;! huom sotkee lähes KAIKEN
mov rdx, rdi
sub rdx, buf
mov rax, 4
mov rbx, 1
mov rcx, buf
int 0x80
ret
;) ****************** read ********************* (;
;! rsi nykyinen kohta syötteessä
;) laittaa syötteestä yhden luvun rax <- x, rdx <- |x|, rbx <- sign(x)
;! 64-bit
;( sotkee rbx, rdx ja rax)
read:
mov rbx, 1
xor rdx, rdx
xor rax, rax
._: lodsb
cmp al, 0x2d
je ._1
cmp al, 0x30
jl ._2
cmp al, 0x39
jg ._2
sub al, 0x30
imul rdx, 10
add rdx, rax
cmp rdx, 0
jne ._
jmp ._3
._1: mov rbx, -1
._2: cmp rdx, 0
je ._
._3: mov rax, rdx
imul rax, rbx
ret
;) ****************** print ********************* (;
;! rdi tärkeä
;( sotkee rax, rdx, rbx)
print:
cmp rax, 0
jnl ._
mov rdx, rax
mov al, 0x2d ;-
stosb
mov rax, rdx
imul rax, -1
._: mov rbx, 0xa
push rdi
mov rdi, asd
std
._1: xor rdx, rdx
div rbx
xchg rax, rdx
add al, 0x30
stosb
xchg rax, rdx
cmp rax, 0
jne ._1
cld
mov rdx, rsi
mov rsi, rdi
inc rsi
pop rdi
._2: lodsb
stosb
cmp rsi, asd
jng ._2
mov al, 0x20
stosb
mov rsi, rdx
ret

Test details

Test 1

Group: 1

Verdict:

input
1000
582
214
723
273
...

correct output
0
1
7
7
6
...

user output
(empty)

Test 2

Group: 2

Verdict:

input
1000
615664
916441
627600
279508
...

correct output
1
2
3
2
2
...

user output
(empty)

Test 3

Group: 3

Verdict:

input
1000
672274832941907421
260504693279721732
646999966092970935
100853063389774434
...

correct output
7
2
2
0
9
...

user output
(empty)