結果
| 問題 |
No.3068 Speedrun (Hard)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-04-29 02:37:14 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,407 bytes |
| コンパイル時間 | 11,809 ms |
| コンパイル使用メモリ | 390,916 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2025-04-29 02:37:36 |
| 合計ジャッジ時間 | 20,155 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 25 WA * 7 |
コンパイルメッセージ
warning: value assigned to `tmp1` is never read --> src/main.rs:12:13 | 12 | let mut tmp1:isize = 0; | ^^^^ | = help: maybe it is overwritten before being read? = note: `#[warn(unused_assignments)]` on by default warning: value assigned to `tmp2` is never read --> src/main.rs:13:13 | 13 | let mut tmp2:isize = 0; | ^^^^ | = help: maybe it is overwritten before being read?
ソースコード
use proconio::input;
use std::cmp::min;
fn main() {
input!{
a:isize, b:isize, c:isize, d:isize, n:isize,
p:isize, q:isize, r:isize, s:isize, t:isize,
}
let mut x_c:isize;
let mut x_d:isize;
let mut tmp1:isize = 0;
let mut tmp2:isize = 0;
let mut flag:bool = false;
let mut ans:[isize;4] = [10001, 10001, 10001, 10001];
for x_b in 0..=(b as isize) {
if x_b*q > t {
break;
}
for x_a in 0..=(a as isize) {
tmp1 = n - x_a - x_b;
tmp2 = t - (p*x_a) - (q*x_b);
if tmp2 < 0 {
break;
}
if r!=s {
// x_dが整数にならないパターン
if ((tmp1*r) - tmp2)%(r-s)!=0 {
continue;
}
x_d = ((tmp1*r) - tmp2) / (r-s);
x_c = tmp1 - x_d;
} else {
if tmp1>r+s || tmp1*r!=tmp2 {
continue;
}
x_c = min(r, tmp1);
x_d = tmp1 - x_c;
}
if 0<=x_c && x_c<=c && 0<=x_d && x_d<=d {
ans = [x_a, x_b, x_c, x_d];
flag = true;
break;
}
}
if flag {
break;
}
}
println!("{} {} {} {}",ans[0],ans[1],ans[2],ans[3]);
}