結果
問題 | No.927 Second Permutation |
ユーザー |
![]() |
提出日時 | 2020-05-10 22:04:01 |
言語 | JavaScript (node v23.5.0) |
結果 |
AC
|
実行時間 | 135 ms / 2,000 ms |
コード長 | 2,920 bytes |
コンパイル時間 | 32 ms |
コンパイル使用メモリ | 5,376 KB |
実行使用メモリ | 46,464 KB |
最終ジャッジ日時 | 2024-10-13 01:50:44 |
合計ジャッジ時間 | 3,576 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
function main(input) {let X = getStrings(input, "");X.sortByIntegerD();let XX = X.join("");let ans = "";if(X.length == 2) {ans = X[1] + X[0];} else {for(let i=X.length-1; i>0; i--) {if(X[i-1] != X[i]) {let n = X[i-1];X[i-1] = X[i];X[i] = n;ans = X.join("");break;}}}if(ans == "" || ans[0] == '0' || ans == XX) {console.log(-1);} else {console.log(ans);}}//-- functions ------------------------------------function getIntegers(lines, sep) {if(sep === undefined) {return lines.map(function(e) {return Number(e);});} else {return lines.shift().split(sep).map(function(e) {return Number(e);});}}function getStrings(lines, sep=" ") {return lines.shift().split(sep);}function twoDimenArrayByValue(h, w, value) {const list = new Array(h);for(let i=0; i<h; i++) {list[i] = new Array(w).fill().map(function(e) {return value.constructor == Array ? Array.from(value) : value;});}return list;}function twoDimenArrayByStrings(h, strings) {const list = new Array(h);for(let i=0; i<h; i++) {list[i] = strings.shift().split("");}return list;}function distance(x1, y1, x2, y2) {return Math.sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));}function gcd(a, b) {return b === 0 ? a : gcd(b, a % b);}//-- Array -------------------------------------------Array.prototype.sortByIntegerA = function() {this.sort(function(a, b) { return a - b; });};Array.prototype.sortByIntegerD = function() {this.sort(function(a, b) { return b - a; });};Array.prototype.orLess = function(V, l=0, r=this.length) {l--;while(r - l > 1) {let x = Math.floor((r + l) / 2);this[x] > V ? r = x : l = x;}return r;};Array.prototype.lessThen = function(V, l=0, r=this.length) {l--;while(r - l > 1) {let x = Math.floor((r + l) / 2);this[x] >= V ? r = x : l = x;}return r;};Array.prototype.orHigher = function(V, l, r) {return this.length - this.lessThen(V, l, r);};Array.prototype.greaterThan = function(V, l, r) {return this.length - this.orLess(V, l, r);};Array.prototype.deepCopy = function(list) {let retList = [];for(let i=0; i<list.length; i++) {retList[i] = list[i].constructor == Array ? Array.from(list[i]) : list[i];}return retList;};Array.prototype.out = function() {let outList = [];if(this[0].constructor == Array) {for(let i=0; i<this.length; i++) {outList.push(this[i].join(" "));}} else {outList.push(this.join(" "));}console.log(outList.join("\n"));};Array.prototype.pushNoSameValue = function(...values) {values.forEach(function(e) {if(!this.includes(e)) {this.push(e);}}, this);};main(require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n"));