結果
| 問題 | No.3722 Blended Taste |
| コンテスト | |
| ユーザー |
occhan
|
| 提出日時 | 2026-09-20 13:08:36 |
| 言語 | JavaScript (node v26.7.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 90 ms / 2,000 ms |
| + 912µs | |
| コード長 | 5,822 bytes |
| 記録 | |
| コンパイル時間 | 27 ms |
| コンパイル使用メモリ | 9,868 KB |
| 実行使用メモリ | 98,196 KB |
| 最終ジャッジ日時 | 2026-09-20 13:08:45 |
| 合計ジャッジ時間 | 6,939 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 41 |
ソースコード
"use strict";
// start
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(require("node:fs"));
function main() {
// ここに処理を記述します
let [N, M, K] = nextNums(3);
if (K * K < M) {
print(-1);
return;
}
let ans = Array.from({ length: N }, () => Array(N).fill(0));
for (let j = 0; j < N; j++)
ans[0][j] = j % M + 1;
for (let i = 1; i < N; i++) {
let k = ans[i - 1][K - 1] % M + 1;
for (let j = 0; j < N; j++) {
ans[i][j] = k;
k %= M;
k++;
}
}
for (let i = 0; i < N; i++) {
if (i != N - 1)
println(ans[i], " ");
else
print(ans[i], " ");
}
// 処理終了
}
const less = (a, b) => (a == b ? 0 : a < b ? -1 : 1);
const greater = (a, b) => (a == b ? 0 : a < b ? 1 : -1);
const bigIntMax = (...args) => args.reduce((m, e) => (e > m ? e : m));
const bigIntMin = (...args) => args.reduce((m, e) => (e < m ? e : m));
const bigIntAbs = (arg) => (arg < 0 ? -arg : arg);
/**
* 説明: 非負 bigint n の床平方根 floor(sqrt(n)) を正確に返す。
* 使い方: let x = bigIntSqrt(n)
* 計算量: O(log bit長)
*/
const bigIntSqrt = (n) => {
if (n < 0n) {
throw new RangeError("square root of negative bigint");
}
if (n < 2n)
return n;
let bitLength = n.toString(2).length;
let x = 1n << BigInt((bitLength + 1) >> 1);
while (true) {
let next = (x + n / x) >> 1n;
if (next >= x)
return x;
x = next;
}
};
let inputs = "";
let inputArray;
let currentIndex = 0;
let outputBuffer = "";
let yes = "Yes";
let no = "No";
let MOD998244353 = 998244353;
let small_a_code = 97;
let big_A_code = 65;
let dxy4 = [[-1, 0], [0, 1], [1, 0], [0, -1]];
let dxy8 = [[-1, 0], [-1, 1], [0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1]];
let dir4 = ["U", "R", "D", "L"];
// // インタラクティブ用
// // お決まりのインプットはコメントアウト、main関数にasyncを忘れない
// // 詳しくは典型ABC305-Fをチェック
// const readline = require("readline");
// const rl = readline.createInterface({
// input: process.stdin,
// output: process.stdout,
// });
// const it = rl[Symbol.asyncIterator]();
// const nextAwait = async () => {
// const { value } = await it.next();
// return value.trim();
// };
function next() {
return inputArray[currentIndex++];
}
function nextNum() {
return +next();
}
function nextBigInt() {
return BigInt(next());
}
function nexts(length) {
const arr = [];
for (let i = 0; i < length; ++i)
arr[i] = next();
return arr;
}
function nextNums(length) {
const arr = [];
for (let i = 0; i < length; ++i)
arr[i] = nextNum();
return arr;
}
function nextBigInts(length) {
const arr = [];
for (let i = 0; i < length; ++i)
arr[i] = nextBigInt();
return arr;
}
function print(out, separator) {
if (Array.isArray(out)) {
outputBuffer += out.join(separator);
}
else {
outputBuffer += out;
}
}
function println(out, separator) {
if (Array.isArray(out)) {
print(out, separator || "");
}
else {
print(out);
}
print("\n");
}
function flush() {
if (outputBuffer.length == 0)
return;
console.log(outputBuffer.endsWith("\n")
? outputBuffer.slice(0, -1)
: outputBuffer);
}
function intDiv(a, b) {
return Math.trunc(a / b);
}
// end
function readInput() {
const g = globalThis;
// Deno
if (typeof g.Deno !== "undefined") {
const chunks = [];
const buf = new Uint8Array(1 << 16);
while (true) {
const n = g.Deno.stdin.readSync(buf);
if (n === null)
break;
if (n > 0)
chunks.push(buf.slice(0, n));
}
const length = chunks.reduce((s, c) => s + c.length, 0);
const bytes = new Uint8Array(length);
let offset = 0;
for (const c of chunks) {
bytes.set(c, offset);
offset += c.length;
}
return new TextDecoder().decode(bytes);
}
// Node.js / Bun
return fs.readFileSync(0, "utf8");
}
inputs = readInput();
inputArray = inputs.trim().split(/\s+/);
main();
flush();
/**
* https://github.com/occhanCode/atcoder-templates/blob/main/src/main.ts
*/
//# sourceMappingURL=main.js.map
occhan