CSES - Datatähti 2018 alku - Results
Submission details
Task:Bittijono
Sender:yhyy
Submission time:2017-10-08 16:40:01 +0300
Language:Assembly
Status:READY
Result:49
Feedback
groupverdictscore
#1ACCEPTED7
#2ACCEPTED15
#3ACCEPTED27
#40
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.05 s1details
#4ACCEPTED0.06 s1details
#5ACCEPTED0.04 s1details
#6ACCEPTED0.06 s1details
#7ACCEPTED0.05 s1details
#8ACCEPTED0.04 s1details
#9ACCEPTED0.07 s1details
#10ACCEPTED0.04 s1details
#11ACCEPTED0.06 s2details
#12ACCEPTED0.06 s2details
#13ACCEPTED0.06 s2details
#14ACCEPTED0.04 s2details
#15ACCEPTED0.05 s2details
#16ACCEPTED0.04 s2details
#17ACCEPTED0.06 s2details
#18ACCEPTED0.05 s2details
#19ACCEPTED0.04 s2details
#20ACCEPTED0.06 s2details
#21ACCEPTED0.05 s3details
#22ACCEPTED0.04 s3details
#23ACCEPTED0.06 s3details
#24ACCEPTED0.06 s3details
#25ACCEPTED0.04 s3details
#26ACCEPTED0.05 s3details
#27ACCEPTED0.04 s3details
#28ACCEPTED0.07 s3details
#29ACCEPTED0.05 s3details
#30ACCEPTED0.05 s3details
#31ACCEPTED0.18 s4details
#32--4details
#33ACCEPTED0.16 s4details
#34ACCEPTED1.00 s4details
#35ACCEPTED0.79 s4details
#36--4details
#37--4details
#38ACCEPTED0.97 s4details
#39--4details
#40ACCEPTED0.87 s4details

Code

section	.data
section	.bss
	syote resb 300	; syöte
	buf resb 9009	; tuloste
	asd resb 1
section	.text
	global _start
_start:
	mov	eax, 3
	mov	ebx, 0
	mov	ecx, syote
	mov	edx, 300
	int	0x80		; lue syöte
	
	mov	rsi, syote
	mov	rdi, buf
	
	call	read	
	mov	r15, rax	; n

	xor	r13, r13
	mov	r8, 30
	mov	r9, 1
	mov	r11, 1
	mov	rax, 1
	mov	rdx, 2
	mov	rbx, 1
	
	call	haku

	mov	rcx, r8
	mov	r9, 1
._2:	mov	r10, r9
	and	r10, r14
	jz	.__4
	mov	al, '1'
	jmp	.__5
.__4:	mov	al, '0'
.__5:	stosb
	sal	r9, 1
	loop	._2

.lopeta:
	call	flush
	mov	rax, 1
	mov	rbx, 0
	int	0x80

haku:
	cmp	r11, r8
	jge	._1
	cmp	rax, r15
	jg	._1
	jl	._0
	mov	r8, r11
	mov	r14, r13
._0:
	inc	r11
	sal	r9, 1
	
	xor	r13, r9
	add	rax, rdx
	add	rbx, rdx
	call	haku
	sub	rax, rdx
	sub	rbx, rdx
	xor	r13, r9
	
	add	rax, rbx
	add	rdx, rbx
	call	haku
	sub	rax, rbx
	sub	rdx, rbx
	
	dec	r11
	sar	r9, 1
._1:
	ret

;) ******************   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

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1

correct output
1

user output
0

Test 2

Group: 1

Verdict: ACCEPTED

input
2

correct output
11

user output
00

Test 3

Group: 1

Verdict: ACCEPTED

input
3

correct output
10

user output
01

Test 4

Group: 1

Verdict: ACCEPTED

input
4

correct output
1111

user output
0000

Test 5

Group: 1

Verdict: ACCEPTED

input
5

correct output
110

user output
011

Test 6

Group: 1

Verdict: ACCEPTED

input
6

correct output
101

user output
010

Test 7

Group: 1

Verdict: ACCEPTED

input
7

correct output
1110

user output
0111

Test 8

Group: 1

Verdict: ACCEPTED

input
8

correct output
1100

user output
0011

Test 9

Group: 1

Verdict: ACCEPTED

input
9

correct output
1101

user output
0100

Test 10

Group: 1

Verdict: ACCEPTED

input
10

correct output
1001

user output
0110

Test 11

Group: 2

Verdict: ACCEPTED

input
38

correct output
1101011

user output
0010100

Test 12

Group: 2

Verdict: ACCEPTED

input
13

correct output
11011

user output
00100

Test 13

Group: 2

Verdict: ACCEPTED

input
90

correct output
111001010

user output
011011101

Test 14

Group: 2

Verdict: ACCEPTED

input
25

correct output
110010

user output
010011

Test 15

Group: 2

Verdict: ACCEPTED

input
82

correct output
111001101

user output
011101100

Test 16

Group: 2

Verdict: ACCEPTED

input
94

correct output
1100011110

user output
0111100011

Test 17

Group: 2

Verdict: ACCEPTED

input
100

correct output
1111001001

user output
0110110000

Test 18

Group: 2

Verdict: ACCEPTED

input
99

correct output
110010010

user output
011100101

Test 19

Group: 2

Verdict: ACCEPTED

input
98

correct output
110110010

user output
011000101

Test 20

Group: 2

Verdict: ACCEPTED

input
92

correct output
100110001

user output
011100110

Test 21

Group: 3

Verdict: ACCEPTED

input
1666

correct output
101101100100101

user output
011011101010101

Test 22

Group: 3

Verdict: ACCEPTED

input
897

correct output
11101001101010

user output
01011101001011

Test 23

Group: 3

Verdict: ACCEPTED

input
4466

correct output
111101010110100101

user output
010110110001110100

Test 24

Group: 3

Verdict: ACCEPTED

input
4240

correct output
11011001011010101

user output
01010100101100100

Test 25

Group: 3

Verdict: ACCEPTED

input
3089

correct output
1011001010100101

user output
0101101010110010

Test 26

Group: 3

Verdict: ACCEPTED

input
4697

correct output
11010101101010110

user output
01101010110101011

Test 27

Group: 3

Verdict: ACCEPTED

input
4608

correct output
11010110101001010

user output
01010010101101011

Test 28

Group: 3

Verdict: ACCEPTED

input
4625

correct output
111011001100101001

user output
011101010001001001

Test 29

Group: 3

Verdict: ACCEPTED

input
4611

correct output
11010101010101100

user output
01010010100101011

Test 30

Group: 3

Verdict: ACCEPTED

input
4917

correct output
10110100101010110

user output
01101010100101101

Test 31

Group: 4

Verdict: ACCEPTED

input
178555

correct output
1011010110110101010110110

user output
0110110101010110110101101

Test 32

Group: 4

Verdict:

input
864856

correct output
10111010110110100100101010010

user output
(empty)

Test 33

Group: 4

Verdict: ACCEPTED

input
112146

correct output
1101110101011001100100110

user output
0111010111010101101001100

Test 34

Group: 4

Verdict: ACCEPTED

input
741124

correct output
1011010011010101100101011010

user output
0101101010011010101100101101

Test 35

Group: 4

Verdict: ACCEPTED

input
511902

correct output
1011010100011010100101001110

user output
0111101010101010010100110110

Test 36

Group: 4

Verdict:

input
920019

correct output
11100100101101010101001101010

user output
(empty)

Test 37

Group: 4

Verdict:

input
933943

correct output
10101011010100100110100111001

user output
(empty)

Test 38

Group: 4

Verdict: ACCEPTED

input
973410

correct output
1011010101011010101010101001

user output
0110101010101010010101010010

Test 39

Group: 4

Verdict:

input
954943

correct output
10110110010011010100100110101

user output
(empty)

Test 40

Group: 4

Verdict: ACCEPTED

input
911674

correct output
1010110010110101010101010110

user output
0110101010101010110100110101