35726


AtCoderのインタラクティブ形式の問題が解けません。  
<http://practice.contest.atcoder.jp/tasks/practice_2>

ローカルでテストしたところ成功したので、アルゴリズムは間違っていないと思います。  
おそらく標準出力のflushに失敗しているのかと思うのですが、どうしたらよいでしょうか・・・  
お願い致します。

[code]

    # -*- coding: utf-8 -*-
    
    #########################
    #~What is this function for?~
    #
    #There are N balls labeled with the first N uppercase letters. The balls have pairwise distinct weights.
    #You are allowed to ask at most Q queries. In each query, you can compare the weights of two balls (see Input/Output section for details).
    #Sort the balls in the ascending order of their weights.
    #
    #This task is the Problem B of the practice contest of "AtCoder"(http://practice.contest.atcoder.jp/tasks/practice_2).
    #########################
    
    import sys
    [N, Q] = list(map(int, input().split()))
    Data = [chr(i) for i in range(65, 65+N)]
    def QuickSort(data, start, end):
        n = end - start + 1
        pivot = int(n/2.0)
        P = data[pivot]
        light = []
        heavy = []
        for i in range(start, pivot):
            print("? "+data[i] + " " + data[pivot])
            sys.stdout.flush()
            ans = input()
            if ans == '>':
                heavy.append(data[i])
            else:
                light.append(data[i])
        for i in range(pivot+1, end+1):
            print("? "+data[pivot] + " " + data[i])
            sys.stdout.flush()
            ans = input()
            if ans == '<':
                heavy.append(data[i])
            else:
                light.append(data[i])
        l_length = len(light)
        h_length = len(heavy)
    
        data[start:start+l_length] = light
        data[start+l_length] = P
        data[start+l_length+1:end+1] = heavy
    
        if l_length >= 2:
            data = QuickSort(data, start, start+l_length-1)
        if h_length >= 2:
            data = QuickSort(data, start+l_length+1, end)
        return data
    
    print("! " + "".join(QuickSort(Data, 0, N-1)))
    
[/code]


CC BY-SA 4.0
2017-06-17T06:48:24.427
35660
2023-09-13T12:09:51.427
2023-09-13T12:09:51.427
3060
9610
question
python python2
AtCoderのインタラクティブ形式問題での標準入力/出力


このコードが提出したものと本当に一致しているという前提ですが、間違っているのはアルゴリズムですよ。


CC BY-SA 3.0
2017-06-19T22:05:12.590
35726
2017-06-19T22:05:12.590
12274
35660
answer