• <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 閱讀(1122) 評論(0)  編輯 收藏 引用 所屬分類: Assemble

            久久伊人中文无码| 久久无码国产专区精品| 国产精品视频久久久| 国产精品久久久久久一区二区三区| 久久综合亚洲欧美成人| 久久777国产线看观看精品| 99久久免费国产精品| 久久久久久综合网天天| 国内精品久久久久久99蜜桃 | 久久无码中文字幕东京热| www久久久天天com| 亚洲欧美一级久久精品| 五月丁香综合激情六月久久| 国产精品美女久久久久av爽 | 久久精品国产久精国产一老狼| 精品人妻久久久久久888| 久久青青国产| 一级做a爱片久久毛片| 久久无码人妻一区二区三区午夜| 久久精品亚洲男人的天堂| 色综合久久久久综合体桃花网| 久久WWW免费人成—看片| 久久久久成人精品无码中文字幕| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久久久亚洲av综合波多野结衣 | 亚洲一区中文字幕久久| 乱亲女H秽乱长久久久| 狠狠色婷婷久久一区二区| 久久国产精品免费一区| 日本久久久精品中文字幕| 少妇高潮惨叫久久久久久| 老男人久久青草av高清| 亚洲国产香蕉人人爽成AV片久久| 欧美日韩中文字幕久久伊人| 国产Av激情久久无码天堂| 久久精品人人做人人爽97 | 久久精品无码专区免费青青| 日韩久久久久久中文人妻| 中文字幕乱码久久午夜| 色欲综合久久躁天天躁蜜桃| 久久人爽人人爽人人片AV|