今日の問題
↑押してください。
自分の回答(javascript)
function Main(input){
min = 1e18
max = -1e18
let abc = "abcdefghijklmnopqrstuvwxyz".split("")
let ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")
let f = 1
if(f == 0){
input = parseInt(input.trim())
}
if(f == 1){
input = input.trim().split(" ").map((a)=>parseInt(a))
}
if(f == 2){
input = input.trim().split("\n").map((a)=>a.split(" ").map((b)=>parseInt(b)))
}
//ここより上は定型文です。
let [a,b,c,d,e] = [...input]
map = new Map()
map.set("A",0)
map.set("B",1)
map.set("C",2)
map.set("D",3)
map.set("E",4)
let list = "ABCDE BCDE ACDE ABDE ABCE ABCD CDE BDE ADE BCE ACE BCD ABE ACD ABD ABC DE CE BE CD AE BD AD BC AC AB E D C B A"
list = list.split(" ")
list.sort((a,b)=>{
a = a.split("")
b = b.split("")
let as = 0
let bs = 0
for(let i = 0;i<a.length;i++){
as += input[map.get(a[i])]
}
for(let i = 0;i<b.length;i++){
bs += input[map.get(b[i])]
}
if(as>bs){
return -1
}
if(as<bs){
return 1
}
if(as == bs){
a = a.join("")
b = b.join("")
let s = [a,b]
s.sort()
if(s[0] == a){
return -1
}else{
return 1
}
}
})
console.log(list.join("\n"))
}
Main(require("fs").readFileSync(0, "utf8"));
工夫した点
すべてリストに入れてsortしてときました。ぜっっったいにbit全探索でリストを作ったほうが良かったです。次からは気付けるようになりたいです。