Code Submission Evaluation System Login

Datatähti 2018 alku

Start:2017-10-02 00:00:00
End:2017-10-16 00:00:00
 

Tasks | Messages | Scoreboard | Statistics


CSES - Datatähti 2018 alku - Results
History
2017-10-15 23:39:20100
2017-10-06 21:45:420
2017-10-06 21:36:15100
Task:Kyselyt
Sender:yhyy
Submission time:2017-10-15 23:39:20
Language:Assembly
Status:READY
Score:100

Feedback

groupverdictscore
#1ACCEPTED12
#2ACCEPTED25
#3ACCEPTED63

Test results

testverdicttime (s)group
#1ACCEPTED0.07 / 1.001details
#2ACCEPTED0.06 / 1.002details
#3ACCEPTED0.07 / 1.003details

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
	xor	r14, r14
	mov	r13, buf
._00:
	call	read
	
	mov	r8, 1
	mov	r9, 9
	mov	r10, 1

._0:	mov	rdx, r9
	imul	rdx, r8
	cmp	rax, rdx
	jle	._1
	sub	rax, rdx
	imul	r9, 10
	inc	r8

	imul	r10, 10
	jmp	._0
._1:
	dec	rax
	xor	rdx, rdx
	cqo
	div	r8
	add	rax, r10

	mov	r12, rsi
	mov	rsi, rdi
	add	rsi, rdx
	call	print
	xchg	rdi, r13
	lodsb
	stosb
	mov	al, ' '
	stosb
	xchg	rdi, r13
	mov	rsi, r12
	
	inc	r14
	cmp	r14, r15
	jl	._00
	xchg	rdi, r13
.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: ACCEPTED

input
1000
582
214
723
273
480
280
237
204
134
210
565
640
784
508
846
532
465
952
205
...
view   save

correct output
0
1
7
7
6
1
5
4
7
6
2
2
2
2
8
2
1
3
1
8
...
view   save

user output
0 1 7 7 6 1 5 4 7 6 2 2 2 2 8 ...
view   save

Test 2

Group: 2

Verdict: ACCEPTED

input
1000
615664
916441
627600
279508
126605
944125
25887
440405
352957
206746
951305
821686
716797
333476
430123
167570
619834
411383
459670
...
view   save

correct output
1
2
3
2
2
8
7
9
8
3
7
1
9
8
4
3
1
9
9
6
...
view   save

user output
1 2 3 2 2 8 7 9 8 3 7 1 9 8 4 ...
view   save

Test 3

Group: 3

Verdict: ACCEPTED

input
1000
672274832941907421
260504693279721732
646999966092970935
100853063389774434
469646937576313460
292789544562527987
202678876957048242
921044261294332160
293497307441838185
889420403130803486
887773296767104352
272588988734184089
900854413164191389
306838570888252671
321818592757748092
632312861733842235
590425060048634753
921705179835679834
711775852688052272
...
view   save

correct output
7
2
2
0
9
7
7
2
0
4
0
3
0
5
9
9
3
1
2
7
...
view   save

user output
7 2 2 0 9 7 7 2 0 4 0 3 0 5 9 ...
view   save