結果
| 問題 | No.3559 +A,-B |
| コンテスト | |
| ユーザー |
jastaway
|
| 提出日時 | 2026-05-26 01:16:15 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,527 bytes |
| 記録 | |
| コンパイル時間 | 8,861 ms |
| コンパイル使用メモリ | 442,748 KB |
| 実行使用メモリ | 36,712 KB |
| 最終ジャッジ日時 | 2026-05-29 18:56:24 |
| 合計ジャッジ時間 | 17,804 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点1 | 10 % | AC * 4 |
| 部分点2 | 60 % | AC * 7 |
| 部分点3 | 30 % | AC * 11 WA * 9 |
| 合計 | 70 点 |
ソースコード
#include "testlib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAX_T = 100'000;
const ll MAX_V = 1'000'000'000;
int main(int argc, char* argv[]) {
registerValidation(argc, argv);
int T = inf.readInt(1, MAX_T, "T");
inf.readEoln();
while(T--)
{
ll N = inf.readLong(1, MAX_V, "N");
inf.readSpace();
ll X = inf.readLong(-MAX_V, MAX_V, "X");
inf.readSpace();
ll Y = inf.readLong(-MAX_V, MAX_V, "Y");
inf.readSpace();
ll A = inf.readLong(-MAX_V, MAX_V, "A");
inf.readSpace();
ll B = inf.readLong(-MAX_V, MAX_V, "B");
inf.readEoln();
if(X + Y < 0 && X+Y+A*N < 0)
{
cout << X+A*N << " " << Y << endl;
continue;
}
if(X + Y >= 0 && X+Y-B*N >= 0)
{
cout << X << " " << Y-B*N << endl;
continue;
}
if(X + Y < 0 && B <= 0)
{
ll c = (-(X + Y) + A-1)/A;
cout << X+A*c << " " << Y-B*(N-c) << endl;
continue;
}
if(X + Y >= 0 && A <= 0)
{
ll c = (X + Y + B-1)/B;
cout << X+A*(N-c) << " " << Y-B*c << endl;
continue;
}
ll ok = 0, ng = N + 1;
while(ng - ok > 1)
{
ll mid = (ok + ng)/2;
if(X + Y + A*mid - B*(N-mid) < A) ok = mid;
else ng = mid;
}
cout << X+A*ok << " " << Y-B*(N-ok) << endl;
}
inf.readEof();
}
jastaway