• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            coreBugZJ

            此 blog 已棄。

            SPOJ 1112. Number Steps

            1112. Number Steps

            Starting from point (0,0) on a plane, we have written all non-negative integers 0, 1, 2,... as shown in the figure. For example, 1, 2, and 3 has been written at points (1,1), (2,0), and (3, 1) respectively and this pattern has continued.

             

            Illustration



            You are to write a program that reads the coordinates of a point (x, y), and writes the number (if any) that has been written at that point. (x, y) coordinates in the input are in the range 0...10000.

             

            Input

            The first line of the input is N, the number of test cases for this problem. In each of the N following lines, there is x, and y representing the coordinates (x, y) of a point.

             

            Output

            For each point in the input, write the number written at that point or write No Number if there is none.

             

            Example

            Input:
            3
            4 2
            6 6
            3 4
            Output:
            6
            12
            No Number
            
             
             
            我的代碼:
            ; spoj  1112
            section .data
                    noans : db 'No Number', 0x0a
                    noansL : equ $ - noans
            section .text
                    global _start
            _start : 
                    push ebp
                    mov ebp, esp
                    sub esp, 12
                    mov eax, ebp
                    sub eax, 4
                    push eax
                    call inInt
                L5 : 
                    mov eax, [ebp-4]
                    test eax, eax
                    jz L6_A
                    dec eax
                    mov [ebp-4], eax
                    mov eax, ebp
                    sub eax, 8
                    push eax
                    call inInt
                    mov ebx, [ebp-8]
                    mov eax, ebp
                    sub eax, 12
                    push eax
                    call inInt
                    mov ecx, [ebp-12]
                    cmp ebx, 0
                    je X0
                    cmp ebx, 1
                    je X1
                    cmp ebx, ecx
                    je XY_A
                    add ecx, 2
                    cmp ebx, ecx
                    je XY2
                    ;jmp NO
                NO :
                    mov eax, 4
                    mov ebx, 1
                    mov ecx, noans
                    mov edx, noansL
                    int 0x80
                    jmp L5
                L6_A :
                    jmp L6_B
                X0 :
                    cmp ecx, 0
                    jne NO
                    ;jmp X0Y0
                X0Y0 :
                    push dword 0
                    call outInt
                    call outLn
                    jmp L5
                XY_A :
                    jmp XY
                X1 :
                    cmp ecx, 1
                    jne NO
                    ;jmp X1Y1
                X1Y1 :
                    push dword 1
                    call outInt
                    call outLn
                    jmp L5
                L6_B :
                    jmp L6
                XY2 :
                    mov eax, ebx
                    and eax, 0x1
                    jnz XoYo2
                    ;jmp XeYe2
                XeYe2 :
                    shl ebx, 1
                    sub ebx, 2
                    push ebx
                    call outInt
                    call outLn
                    jmp L5
                XoYo2 :
                    shl ebx, 1
                    sub ebx, 3
                    push ebx
                    call outInt
                    call outLn
                    jmp L5
                XY :
                    mov eax, ebx
                    and eax, 0x1
                    jnz XoYo
                    ;jmp XeYe
                XeYe :
                    shl ebx, 1
                    push ebx
                    call outInt
                    call outLn
                    jmp L5
                XoYo :
                    shl ebx, 1
                    dec ebx
                    push ebx
                    call outInt
                    call outLn
                    jmp L5
                L6 : 
                    push 0
                    call exit
                    mov esp, ebp
                    pop ebp
                    ret
            ; func void exit( int )
            exit :
                    mov eax, 1
                    mov ebx, [esp+4]
                    int 0x80
                    ret 4
            ; func void inInt( uint * )
            inInt :
                    push ebp
                    mov ebp, esp
                    sub esp, 8
                    push eax
                    push ebx
                    push ecx
                    push edx
                    mov eax, [ebp+8]
                    mov dword [eax], 0
                    mov dword [ebp-8], 0
                L4 :
                    mov eax, 3
                    mov ebx, 0
                    mov ecx, ebp
                    sub ecx, 4
                    mov edx, 1
                    int 0x80
                    xor ebx, ebx
                    mov bl, byte[ecx]
                    cmp ebx, 0x30
                    jb L3
                    cmp ebx, 0x39
                    ja L3
                    sub ebx, 0x30
                    mov ecx, [ebp+8]
                    mov eax, [ecx]
                    xor edx, edx
                    mov ecx, 10
                    mul ecx
                    add eax, ebx
                    mov ecx, [ebp+8]
                    mov [ecx], eax
                    mov dword [ebp-8], 1
                    jmp L4
               L3 :
                    mov eax, [ebp-8]
                    test eax, eax
                    jz L4
               L2 :
                    pop edx
                    pop ecx
                    pop ebx
                    pop eax
                    mov esp, ebp
                    pop ebp
                    ret 4
            ; func void outInt( uint )
            outInt :
                    push ebp
                    mov ebp, esp
                    sub esp, 64
                    push edx
                    push eax
                    push ecx
                    mov eax, [ebp+8]
                    xor ebx, ebx
                L1 :
                    xor edx, edx
                    mov ecx, 10
                    div ecx
                    inc ebx
                    add dl, 0x30
                    mov ecx, ebp
                    sub ecx, ebx
                    mov byte[ecx], dl
                    test eax, eax
                    jnz L1
                    mov edx, ebx
                    mov eax, 4
                    mov ebx, 1
                    mov ecx, ebp
                    sub ecx, edx
                    int 0x80
                    pop ecx
                    pop eax
                    pop edx
                    mov esp, ebp
                    pop ebp
                    ret 4
            ; func void outLn()
            outLn :
                    push ebp
                    mov ebp, esp
                    sub esp, 4
                    push eax
                    mov eax, 4
                    push ebx
                    mov ebx, 1
                    push ecx
                    mov ecx, ebp
                    sub ecx, 4
                    mov byte[ecx], 0x0a
                    push edx
                    mov edx, 1
                    int 0x80
                    pop edx
                    pop ecx
                    pop ebx
                    pop eax
                    mov esp, ebp
                    pop ebp
                    ret

             

            posted on 2011-03-16 13:44 coreBugZJ 閱讀(1123) 評論(0)  編輯 收藏 引用 所屬分類: Assemble

            思思久久99热免费精品6| 亚洲国产综合久久天堂 | 青青草国产成人久久91网| 亚洲午夜久久久精品影院| 三级韩国一区久久二区综合 | 欧美一区二区久久精品| 狠狠精品久久久无码中文字幕| 99精品久久久久中文字幕| 久久精品国产一区二区三区| 亚洲va久久久噜噜噜久久天堂| 久久噜噜电影你懂的| 久久久久人妻一区二区三区| 久久国产精品波多野结衣AV| 亚洲欧美日韩久久精品第一区| 国产综合精品久久亚洲| 久久天天躁狠狠躁夜夜96流白浆| 久久精品中文字幕一区| 久久99久久99小草精品免视看| 国内精品伊人久久久久777| 久久久久国产精品麻豆AR影院 | 久久成人小视频| 久久黄色视频| 91久久精品视频| 久久福利青草精品资源站| 无码精品久久久天天影视| 婷婷久久五月天| 久久er国产精品免费观看8| 热久久这里只有精品| 久久精品无码专区免费东京热| 亚洲第一极品精品无码久久| 国产色综合久久无码有码| 国内精品久久久久影院老司| 午夜精品久久久久久久无码| 久久青青草原亚洲av无码| 久久这里只有精品视频99| 欧美亚洲另类久久综合婷婷| 久久午夜综合久久| 国内精品伊人久久久影院| 久久精品国产99国产精品导航 | 亚洲七七久久精品中文国产| 一本久久综合亚洲鲁鲁五月天|