質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%

Q&A

解決済

1回答

543閲覧

AtCoder Beginner Contest 252C 間違っている箇所を知りたい

den7

総合スコア28

0グッド

0クリップ

投稿2022/07/19 08:06

AtCoder Beginner Contest 252C(こちら)が8AC,24WAとなってしまいます。
どの部分が間違っているかご教授いただけないでしょうか。

Java

1import java.util.*; 2import java.util.Map.Entry; 3 4public class Main{ 5 public static void main(String[]args){ 6 Scanner sc = new Scanner(System.in); 7 TreeSet<Integer> ts = new TreeSet<Integer>(); 8 int n = sc.nextInt(); 9 TreeMap<Integer,TreeSet<Integer>> map = new TreeMap<Integer,TreeSet<Integer>>(); 10 for(int i=0;i<n;i++){ 11 String s = sc.next(); 12 String[] sa = s.split(""); 13 for(int j=0;j<10;j++){ 14 int num = Integer.parseInt(sa[j]); 15 if(map.containsKey(num)){ 16 TreeSet<Integer> t = map.get(num); 17 t.add(j); 18 map.put(num,t); 19 }else{ 20 TreeSet<Integer> t = new TreeSet<Integer>(); 21 t.add(j); 22 map.put(num,t); 23 } 24 } 25 } 26 while(!map.isEmpty()){ 27 Entry<Integer, TreeSet<Integer>> e=map.firstEntry(); 28 ts.add(e.getValue().last()+10*(n-e.getValue().size())); 29 map.remove(e.getKey()); 30 } 31 System.out.println(ts.first()); 32 } 33}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2022/07/19 12:05 編集

ご提示のコードはどのようなアルゴリズムを基に作られたのでしょうか。 それと AtCoder をやったことが無いので分からないのですが、具体的にどのような入力時にダメなのでしょう。
jimbe

2022/07/19 12:45

例えば、 4 0123456789 9876543210 0123456789 9876543210 というデータの場合、"0" を揃えるとしたらどの何秒目にどのスロットを止めると何秒で揃えられるでしょうか。 (0秒目,1スロット) (9秒目,2スロット) (10秒目,3スロット) (19秒目,4スロット) = 19 秒 です。 ご質問のコードでは 29 秒となるのではないでしょうか。
den7

2022/07/19 14:46

ありがとうございます!解決できました🙇‍♀️
guest

回答1

0

ベストアンサー

間違っているのは以下の計算です。重複している位置が末尾だけならこの計算でよいのですが、そうなるとは限りません。

java

1 ts.add(e.getValue().last()+10*(n-e.getValue().size()));

例えば、こちらの入力例で、正しい出力は10(0秒後1番目、1秒後3番目、10秒後2番目)ですが、このコードだと11が返ります。

text

13 20123456789 30123456789 49012345678

投稿2022/07/19 10:57

編集2022/07/19 12:09
actorbug

総合スコア2224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

den7

2022/07/19 14:46

ありがとうございます!解決できました🙇‍♀️
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問