結果
問題 |
No.3068 Speedrun (Hard)
|
ユーザー |
|
提出日時 | 2025-03-22 09:21:57 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,428 bytes |
コンパイル時間 | 13,241 ms |
コンパイル使用メモリ | 398,236 KB |
実行使用メモリ | 7,328 KB |
最終ジャッジ日時 | 2025-03-22 09:22:42 |
合計ジャッジ時間 | 43,673 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 15 WA * 9 TLE * 8 |
ソースコード
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 { if a+b>n { continue } let ci = n - a - b; if ci<=c && p*a+q*b+r*ci == t { ans = (a,b,ci,0); } }} } else { for a in 0..=a { for b in 0..=b { if a + b > n { continue } // 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); let mut ok = true; ok &= (t - p*a - q*b - r*n + r*a + r*b) % (s-r) == 0; ok &= (t - p*a - q*b - s*n + s*a + s*b) % (r-s) == 0; if ok && (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); }