結果
| 問題 | No.3068 Speedrun (Hard) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-03-22 09:10:14 |
| 言語 | Rust (1.94.0 + proconio + num + itertools) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,285 bytes |
| 記録 | |
| コンパイル時間 | 415 ms |
| コンパイル使用メモリ | 192,560 KB |
| 実行使用メモリ | 9,272 KB |
| 最終ジャッジ日時 | 2026-07-07 19:26:28 |
| 合計ジャッジ時間 | 11,225 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 22 WA * 10 |
コンパイルメッセージ
warning: unused import: `itertools::Itertools` --> src/main.rs:1:5 | 1 | use itertools::Itertools; | ^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
ソースコード
use itertools::Itertools;
use proconio::input;
// A+B+C+D = N
// P*A+Q*B+R*C+S*D = T
// C+D = N-A-B
// R*C+S*D = T-P*A-Q*B
// R*(N-A-B-D) + S*D = T-P*A-Q*B
// D(S-R) = T-P*A-Q*B - R*N + R*A + R*B
// R*C + S*(N-A-B-C) = T-P*A-Q*B
// C(R-S) = T-P*A-Q*B - S*N + S*A + S*B
fn main() {
input! {
a: i64,
b: i64,
c: i64,
d: i64,
n: i64,
p: i64,
q: i64,
r: i64,
s: i64,
t: i64
}
let mut ans = (0,0,0,0);
if r==s {
for a in 0..=a { for b in 0..=b {
let one = t - p*a - q*b - r*(n-a-b);
let two = t - p*a - q*b - s*(n-a-b);
if one==0&&two==0 {
ans = (a,b, n-a-b, 0);
}
}}
} else {
for a in 0..=a { for b in 0..=b {
// D(S-R) = T-P*A-Q*B - R*N + R*A + R*B
// C(R-S) = T-P*A-Q*B - S*N + S*A + S*B
let di = (t - p*a - q*b - r*n + r*a + r*b) / (s-r);
let ci = (t - p*a - q*b - s*n + s*a + s*b) / (r-s);
if (0..=d).contains(&di) && (0..=c).contains(&ci) && a+b+ci+di == n && p*a+q*b+r*ci+s*di == t {
ans = (a,b,ci,di);
}
}}
}
println!("{} {} {} {}", ans.0, ans.1, ans.2, ans.3);
}