Task: | Maalarit |
Sender: | yhyy |
Submission time: | 2016-10-16 23:44:42 +0300 |
Language: | Assembly |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
#4 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.05 s | 1 | details |
#2 | ACCEPTED | 0.07 s | 1 | details |
#3 | ACCEPTED | 0.06 s | 1 | details |
#4 | WRONG ANSWER | 0.06 s | 1 | details |
#5 | ACCEPTED | 0.06 s | 1 | details |
#6 | ACCEPTED | 0.07 s | 1 | details |
#7 | ACCEPTED | 0.05 s | 2 | details |
#8 | WRONG ANSWER | 0.05 s | 2 | details |
#9 | ACCEPTED | 0.06 s | 2 | details |
#10 | ACCEPTED | 0.07 s | 2 | details |
#11 | WRONG ANSWER | 0.06 s | 2 | details |
#12 | ACCEPTED | 0.05 s | 2 | details |
#13 | WRONG ANSWER | 0.06 s | 3 | details |
#14 | ACCEPTED | 0.06 s | 3 | details |
#15 | ACCEPTED | 0.05 s | 3 | details |
#16 | WRONG ANSWER | 0.05 s | 3 | details |
#17 | WRONG ANSWER | 0.08 s | 3 | details |
#18 | ACCEPTED | 0.07 s | 3 | details |
#19 | WRONG ANSWER | 0.07 s | 4 | details |
#20 | WRONG ANSWER | 0.07 s | 4 | details |
#21 | WRONG ANSWER | 0.09 s | 4 | details |
#22 | WRONG ANSWER | 0.07 s | 4 | details |
#23 | WRONG ANSWER | 0.08 s | 4 | details |
#24 | ACCEPTED | 0.08 s | 4 | details |
Code
section .bss syote resb 3000000 t resq 101010 valit resd 101010 p resd 101010 h resd 101010 aita resd 101010 edel resd 101010 seur resd 101010 puu resd 0x40000 vasen resq 101010 oikea resq 101010 tuloste resb 9000000 section .text global _start _start: mov rcx, 8000000 mov al, 0x20 mov rdi, tuloste .__: stosb loop .__ mov eax, 3 mov ebx, 0 mov ecx, syote mov edx, 3000000 int 0x80 mov rsi, syote call luku mov r10, r9 ; n xor rdx, rdx ; i xor r14, r14 ; b xor r15, r15 ; a .lue: call luku inc rdx mov [h+rdx*4], r9d mov ebx, [h+rdx*4-4] cmp rbx, r9 cmovg rbx, r9 ; rbx = max(h[i], h[i-1]) cmp r14, rbx cmovl r14, rbx ; b=max(b, rbx) cmp r15, r9 cmovl r15, r9 ; a=max(a, h[i]) cmp rdx, r10 jl .lue mov rcx, r10 inc rcx xor rbx, rbx mov rdx, r10 inc rdx .yhyy: mov rax, rcx dec rax cmp ebx, [h+eax*4] cmovg ebx, [h+eax*4] cmp r14d, [h+eax*4] ; rbx= min(rbx, h[i]) jnl .k mov esi, edx sub esi, eax dec esi mov [p+eax], esi inc esi mov [valit+eax*4], ebx and esi, 1 imul ebx, esi add eax, 0x20000 mov [puu+eax*4], ebx ; puu[k] = rbx call upd mov ebx, r15d mov rax, rcx dec rax mov [seur+eax*4], edx mov [edel+rdx*4], eax mov rdx, rax mov r9d, [h+eax*4] sal r9, 32 add r9, rax mov [t+eax*8], r9 .k: dec rcx cmp rcx, 0 jne .yhyy mov r13d, [puu+4] mov esi, 1 mov edi, r10d inc edi call mergesort mov rdx, 1 .a: mov rax, [t+rdx*8] mov r9, rax sar r9, 32 cmp r9, 0 je ._a mov ecx, eax mov ebx, [valit+eax*4] mov edi, [p+eax*4] mov esi, 0 add eax, 0x20000 mov [puu+eax*4], esi call upd mov eax, [edel+ecx*4] cmp [valit+eax*4], ebx jg .pyh mov [valit+eax*4], ebx .pyh: inc edi add [p+eax*4], edi mov edi, [p+eax*4] inc edi and edi, 1 imul ebx, edi add eax, 0x20000 mov [puu+eax*4], ebx call upd mov eax, [puu+4] add eax, [h+ecx*4] mov ebx, r13d add ebx, r14d cmp ebx, eax cmovg r13d, [puu+4] cmovg r14d, [h+ecx*4] ._a: inc rdx cmp rdx, r10 jng .a mov rdi, tuloste mov rax, r15 ;call tulosta add rax, r14 ;call tulosta add rax, r13 call tulosta mov rax, 3 call tulosta call aitageneraattori .lopeta: mov rdx, rdi sub rdx, tuloste mov rax, 4 mov rbx, 1 mov rcx, tuloste int 0x80 mov rax, 1 mov rbx, 0 int 0x80 luku: xor r9, r9 .a: xor rax, rax lodsb cmp al, 0x30 jl .mm cmp al, 0x39 jg .mm sub al, 0x30 imul r9, 10 add r9, rax jmp .a .mm: cmp r9, 0 je .a ret upd: .a: sar eax, 1 sal eax, 1 mov r9d, [puu+eax*4] inc eax cmp r9d, [puu+eax*4] cmovl r9d, [puu+eax*4] sar eax, 1 mov [puu+eax*4], r9d cmp eax, 0 jne .a ret mergesort: push rbp mov rbp, rsp sub rsp, 12 cmp esi, edi jnl .palaa mov [rbp-4], esi mov [rbp-8], edi mov edx, esi add edx, edi sar edx, 1 mov [rbp-12], edx mov edi, edx call mergesort mov esi, [rbp-12] inc esi mov edi, [rbp-8] call mergesort mov esi, [rbp-4] mov edi, [rbp-8] mov edx, [rbp-12] call merge .palaa: leave ret merge: mov ecx, edx sub ecx, esi inc ecx xor r9, r9 mov r11d, esi .a: mov rax, [t+r11d*8] mov [vasen+r9d*8], rax inc r9d inc r11d loop .a mov rax, 0x7000000000000000 mov [vasen+r9d*8], rax mov ecx, edi sub ecx, edx xor r9, r9 mov r11d, edx inc r11d .b: mov rax, [t+r11d*8] mov [oikea+r9d*8], rax inc r9d inc r11d loop .b mov rax, 0x7000000000000000 mov [oikea+r9d*8], rax mov ecx, edi sub ecx, esi inc ecx xor r9, r9 xor r11, r11 mov r12d, esi .c: mov rax, [vasen+r9d*8] cmp rax, [oikea+r11d*8] jg .else mov [t+r12d*8], rax inc r12d inc r9d jmp .f .else: mov rax, [oikea+r11d*8] mov [t+r12d*8], rax inc r12d inc r11d .f loop .c .palaa: ret tulosta: mov r9, rax add rdi, 18 std .a: mov rax, r9 mov r9, 0xa xor rdx, rdx idiv r9 mov r9, rax mov rax, rdx add al, 0x30 stosb cmp r9, 0 jne .a cld add rdi, 19 mov al, 0x20 stosb ret aitageneraattori: mov rcx, r10 .a1: xor eax, eax mov ebx, 1 cmp r14d, [h+ecx*4] cmovl eax, ebx mov [aita+ecx*4], eax loop .a1 xor rcx, rcx .a2: inc rcx xor eax, eax cmp eax, [aita+rcx*4] jne ._a2 cmp eax, [aita+rcx*4-4] je ._a2 cmp r13d, [h+rcx*4] jnl ._a2 mov eax, 1 mov ebx, 1 mov edx, 2 cmp eax, [aita+ecx*4-4] cmove ebx, edx mov [aita+ecx*4], ebx ._a2: cmp rcx, r10 jl .a2 mov rcx, r10 .a3: xor eax, eax cmp eax, [aita+rcx*4] jne ._a3 cmp r13d, [h+rcx*4] jnl ._a3 mov eax, 1 mov ebx, 1 cmp eax, [aita+ecx*4+4] mov eax, 2 cmove ebx, eax mov [aita+ecx*4], ebx ._a3: loop .a3 mov rcx, 0 .a4: inc ecx xor eax, eax cmp eax, [aita+ecx*4] jne ._a4 mov eax, 2 cmp eax, [aita+ecx*4-4] je ._ cmp eax, [aita+ecx*4+4] je ._ mov ebx, 2 mov [aita+ecx*4], ebx jmp ._a4 ._: mov eax, 1 mov ebx, 1 xor edx, edx cmp eax, [aita+ecx*4-4] cmove ebx, edx cmp eax, [aita+ecx*4+4] cmove ebx, edx mov [aita+ecx*4], ebx ._a4: cmp rcx, r10 jl .a4 mov rcx, 0 .a5: inc rcx xor rax, rax mov eax, [aita+rcx*4] inc eax call tulosta cmp rcx, r10 jl .a5 ret
Test details
Test 1
Group: 1
Verdict: ACCEPTED
input |
---|
10 22 54 3 91 69 90 40 29 83 71 |
correct output |
---|
174 3 2 1 2 1 2 1 2 1 2 1 |
user output |
---|
174 ... |
Test 2
Group: 1
Verdict: ACCEPTED
input |
---|
10 49 3 96 38 90 18 92 74 83 1 |
correct output |
---|
170 3 1 2 1 2 1 2 1 2 1 2 |
user output |
---|
170 ... |
Test 3
Group: 1
Verdict: ACCEPTED
input |
---|
10 46 3 41 30 16 17 12 93 80 81 |
correct output |
---|
173 3 2 1 2 1 2 1 2 1 2 1 |
user output |
---|
173 ... |
Test 4
Group: 1
Verdict: WRONG ANSWER
input |
---|
10 46 8 95 85 82 73 82 92 53 90 |
correct output |
---|
187 3 1 2 1 2 1 2 1 2 1 2 |
user output |
---|
240 ... |
Test 5
Group: 1
Verdict: ACCEPTED
input |
---|
10 41 18 61 59 40 96 5 2 74 38 |
correct output |
---|
159 3 2 1 2 1 2 1 2 3 1 2 |
user output |
---|
159 ... |
Test 6
Group: 1
Verdict: ACCEPTED
input |
---|
10 1 1 1 1 1 1 1 1 1 1 |
correct output |
---|
2 3 2 1 2 1 2 1 2 1 2 1 |
user output |
---|
2 ... |
Test 7
Group: 2
Verdict: ACCEPTED
input |
---|
100 1 39 94 5 24 84 84 10 78 61 38... |
correct output |
---|
193 3 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ... |
user output |
---|
193 ... |
Test 8
Group: 2
Verdict: WRONG ANSWER
input |
---|
100 31 73 18 88 49 28 66 5 32 48 9... |
correct output |
---|
199 3 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ... |
user output |
---|
203 ... |
Test 9
Group: 2
Verdict: ACCEPTED
input |
---|
100 45 56 36 60 31 10 23 79 29 17 ... |
correct output |
---|
198 3 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ... |
user output |
---|
198 ... |
Test 10
Group: 2
Verdict: ACCEPTED
input |
---|
100 1 77 70 62 21 68 40 54 90 62 1... |
correct output |
---|
194 3 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ... |
user output |
---|
194 ... |
Test 11
Group: 2
Verdict: WRONG ANSWER
input |
---|
100 4 47 41 81 56 64 12 10 20 100 ... |
correct output |
---|
189 3 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ... |
user output |
---|
197 ... |
Test 12
Group: 2
Verdict: ACCEPTED
input |
---|
10 1 1 1 1 1 1 1 1 1 1 |
correct output |
---|
2 3 2 1 2 1 2 1 2 1 2 1 |
user output |
---|
2 ... |
Test 13
Group: 3
Verdict: WRONG ANSWER
input |
---|
100 256160448 813097800 167146270 ... |
correct output |
---|
1929869257 3 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ... |
user output |
---|
1913733137 ... |
Test 14
Group: 3
Verdict: ACCEPTED
input |
---|
100 520002672 3542567 24668528 959... |
correct output |
---|
1946957555 3 1 2 3 1 2 1 2 1 2 1 2 1 2 1 2 ... |
user output |
---|
1946957555 ... |
Test 15
Group: 3
Verdict: ACCEPTED
input |
---|
100 483158423 780224665 844754665 ... |
correct output |
---|
1959373560 3 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ... |
user output |
---|
1959373560 ... |
Test 16
Group: 3
Verdict: WRONG ANSWER
input |
---|
100 969647264 128558017 889036329 ... |
correct output |
---|
1997942264 3 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ... |
user output |
---|
2085681998 ... |
Test 17
Group: 3
Verdict: WRONG ANSWER
input |
---|
100 745018527 400495893 635468795 ... |
correct output |
---|
1961391143 3 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ... |
user output |
---|
1958477594 ... |
Test 18
Group: 3
Verdict: ACCEPTED
input |
---|
10 1 1 1 1 1 1 1 1 1 1 |
correct output |
---|
2 3 2 1 2 1 2 1 2 1 2 1 |
user output |
---|
2 ... |
Test 19
Group: 4
Verdict: WRONG ANSWER
input |
---|
100000 197349274 775463806 263930657 ... |
correct output |
---|
1999942635 3 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ... |
user output |
---|
2029556808 ... |
Test 20
Group: 4
Verdict: WRONG ANSWER
input |
---|
100000 102296405 34648120 320393597 9... |
correct output |
---|
1999930943 3 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 ... |
user output |
---|
2103748312 ... |
Test 21
Group: 4
Verdict: WRONG ANSWER
input |
---|
100000 781254921 418252056 502363453 ... |
correct output |
---|
1999987794 3 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ... |
user output |
---|
2050135703 ... |
Test 22
Group: 4
Verdict: WRONG ANSWER
input |
---|
100000 849784881 230439009 455097426 ... |
correct output |
---|
1999979439 3 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ... |
user output |
---|
2001040101 ... |
Test 23
Group: 4
Verdict: WRONG ANSWER
input |
---|
100000 851456132 13422224 537539701 4... |
correct output |
---|
1999948226 3 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 ... |
user output |
---|
2127640222 ... |
Test 24
Group: 4
Verdict: ACCEPTED
input |
---|
100000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
2 3 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 ... |
user output |
---|
2 ... |