結果

問題 No.628 Tagの勢い
ユーザー kohaku_kohaku
提出日時 2018-01-05 22:20:25
言語 Java11
(openjdk 11.0.5)
結果
AC  
実行時間 282 ms
コード長 2,063 Byte
コンパイル時間 2,630 ms
使用メモリ 39,692 KB
最終ジャッジ日時 2020-02-19 11:07:18

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
test1.txt AC 177 ms
35,932 KB
test2.txt AC 180 ms
35,976 KB
test3.txt AC 171 ms
35,864 KB
test4.txt AC 180 ms
36,140 KB
test5.txt AC 175 ms
36,024 KB
test6.txt AC 177 ms
35,916 KB
test7.txt AC 177 ms
36,348 KB
test8.txt AC 191 ms
36,080 KB
test9.txt AC 196 ms
36,456 KB
test10.txt AC 188 ms
36,164 KB
test11.txt AC 216 ms
36,376 KB
test12.txt AC 200 ms
36,208 KB
test13.txt AC 265 ms
39,692 KB
test14.txt AC 275 ms
39,432 KB
test15.txt AC 282 ms
39,360 KB
test16.txt AC 265 ms
39,632 KB
test17.txt AC 261 ms
39,368 KB
test18.txt AC 179 ms
35,880 KB
test19.txt AC 181 ms
36,032 KB
テストケース一括ダウンロード

ソースコード

diff #
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        TagList tl = new TagList();
        
        int n = sc.nextInt();
        for(int i = 0; i < n; i++) {
            int no = sc.nextInt();
            int m = sc.nextInt();
            int s = sc.nextInt();
            for(int j = 0; j < m; j++) {
                String tag = sc.next();
                int index = tl.getIndex(tag);
                if(index== -1) {
                    tl.getList().add(new Tag(tag,s));
                } else {
                    tl.getList().get(index).add(s);
                }
            }
        }
        tl.sort();
        for(int i = 0; i < Math.min(10,tl.getList().size()); i++) {
            Tag tmp = tl.getList().get(i);
            System.out.println( tmp.getTag() + " " + tmp.getScore() );
        }
    }
}

class TagList {
    List<Tag> list = new ArrayList<>();

    public int getIndex(String tag) {
        for(int i = 0; i < list.size(); i++) {
            if(tag.equals(this.list.get(i).getTag())) {
                return i;
            }
        }
        return -1;
    }
    
    public List<Tag> getList() {
        return this.list;
    }
    
    public void sort() {
        Collections.sort(list, new TagStringComparator());
        Collections.sort(list, new TagScoreComparator());
    }
}

class Tag {
    public String tag;
    public int score;
    
    public Tag(String tag, int score) {
        this.tag = tag;
        this.score = score;
    }
    
    public String getTag() {
        return this.tag;
    }
    
    public int getScore() {
        return this.score;
    }
    
    public void add(int add) {
        this.score += add;
    }
}

class TagStringComparator implements Comparator<Tag> {
    public int compare(Tag t1, Tag t2){
        return t1.getTag().compareTo(t2.getTag());
    }
}

class TagScoreComparator implements Comparator<Tag> {
    public int compare(Tag t1, Tag t2){
        return t2.getScore() - t1.getScore();
    }
}
0