第3回日本情報オリンピック 予選問題 解答

問題1(1点)

    99*(-11)+78*14=3
    
問題2(1点)
    (a) C         b
        Pascal    b
        BASIC    (b)       ( )が必要
    (b) C         a\b      または a-a/b*b
        Pascal    a mod b  または a-(a div b)*b
        BASIC     a MOD b  または a-a\b*b
                  \ と backslash は同じ
    (a)(b)両方できて1点。
    

問題3(2点)

    (a) C          right=k-1
        Pascal     right:=k-1
        BASIC      right=k-1
    (b) C          left=k+1
        Pascal     left:=k+1
        BASIC      left=k+1
    

問題4(2点=(1)(2)各1点)

    (1a) C        a/2-k+1       または (a+1)/2-k
         Pascal   a div 2-k+1   または (a+1) div 2-k
         BASIC    INT(a/2)-k+1  または (a+1)/2-k
    (1b) C        a/2+k         または (a-1)/2+k
         Pascal   a div 2+k     または (a-1) div 2+k
         BASIC    INT(a/2)+k    または (a-1)/2
    (2)  2のべき (1,2,4,8,...,2^n,...)
    (1)は(1a)(1b)両方できて1点。
    

問題5(2点=(a)(b)各1点)

    (a) C         search(d,level+1)
        Pascal    search(d,level+1)
        BASIC     search(d,level+1)
    (b) C         path[level]='\0'     \ と backslash は同じ
                  または return または 「空欄」と明示したもの 
        Pascal    delete(path,level,1)
        BASIC     path$=RIGHT$(path$,1)
    

問題6(2点=(1)(2)各1点)

    (2a) C          q*q+4*S*p*p
         Pascal     q*q+4*S*p*p
         BASIC      q*q+4*S*p*p
    (2b) C          q*q-4*S*p*p
         Pascal     q*q-4*S*p*p
         BASIC      q*q-4*S*p*p
    (2a)と(2b)は逆でもよい(両方できて1点)。
    

問題7(2点)

    (a) C           a[i].No_term=a[i-j*j].No_term+1;
                    a[i].first=j*j;
        Pascal      a[i].No_term:=a[i-j*j].No_term+1;
                    a[i].first:=j*j
        BASIC       a(i).NoTerm=a(i-j*j).NoTerm+1
                    a(i).first=j*j
    

問題8(2点=(1)(2)各1点)

    (1)  4
    (2)  2log2(n)-3, -[-log2(n)], log2(n), log2(n)+1 等、
         log2(n) の1次式はいずれも正解とする。
    


JOI'96へ戻る

JOIホームページへ戻る