AtCoder Beginner Contestに参加したのですが、どうしても自分の解法が間違っている理由が分からないためこちらに質問させていただきます。
問題はこちらです
https://abc113.contest.atcoder.jp/tasks/abc113_c
自分の解法は以下に記します。
Python3.4.2
1N, M = map ( int, input ( ).split ( ) )# N,Mを取得 2#初期化 3lists = [ ] 4#listに要素を追加 後で並び変えるため並び替える前の順番を示すキーを第三要素に挿入しておく 5for i in range ( M ): 6 lists.append ( list ( map ( int, input ( ).split ( ) ) ) + [ i ] ) 7#第一要素に昇順で並び替えた後、第二要素で昇順に並び替える 8lists.sort ( key=lambda x: x[ 0 ] ) 9lists.sort ( key=lambda x: x[ 1 ] ) 10# befは前回の第一要素 stateは第一要素での順位 11bef = 0 12state = 0 13retstr = '' 14triple = [ ]#第四要素に識別番号を追加したリストの初期化 15for i in lists: 16 if (i[ 0 ] != bef): 17 bef = i[ 0 ] 18 state = 1 19 triple.append ( [ i[ 0 ], i[ 1 ], i[ 2 ], str ( i[ 0 ] ).rjust ( 6, '0' ) + str ( state ).rjust ( 6, '0' ) ] ) 20 else: 21 state += 1 22 triple.append ( [ i[ 0 ], i[ 1 ], i[ 2 ], str ( i[ 0 ] ).rjust ( 6, '0' ) + str ( state ).rjust ( 6, '0' ) ] ) 23 24triple.sort ( key=lambda x: x[ 2 ] )#第三要素で並び替えて、元の入力に対応した式ベンツ番号の順番に戻す 25for i in triple: 26 print ( i[ 3 ] )#識別番号の出力 27
間違ってる部分を教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/05 07:09
2018/11/05 11:38
2018/11/16 06:05