結果
| 問題 | No.3560 Giant Salamander |
| コンテスト | |
| ユーザー |
jastaway
|
| 提出日時 | 2026-05-26 02:32:38 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 124 ms / 2,000 ms |
| コード長 | 1,429 bytes |
| 記録 | |
| コンパイル時間 | 8,606 ms |
| コンパイル使用メモリ | 444,464 KB |
| 実行使用メモリ | 21,760 KB |
| 最終ジャッジ日時 | 2026-05-29 18:42:00 |
| 合計ジャッジ時間 | 12,426 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
| 純コード判定待ち |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点1 | 5 % | AC * 5 |
| 部分点2 | 20 % | AC * 6 |
| 部分点3 | 15 % | AC * 11 |
| 部分点4 | 40 % | AC * 22 |
| 満点 | 20 % | AC * 35 |
| 合計 | 100 点 |
ソースコード
#include "testlib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAX_T = 200'000;
const int MIN_N = 3;
const int MAX_N = 1'000'000'000;
const int MAX_M = 200'000;
int main(int argc, char* argv[]) {
registerValidation(argc, argv);
int T = inf.readInt(1, MAX_T, "T");
int smM = 0;
inf.readEoln();
while(T--)
{
int N = inf.readInt(MIN_N, MAX_N, "N");
inf.readSpace();
int M = inf.readInt(1, min(MAX_M, N), "M");
smM += M;
inf.readEoln();
vector<int> A(M), B(M);
int bfA = 0;
for(int i = 0; i < M; i++)
{
A[i] = inf.readInt(1, N, "A_"+to_string(i));
inf.readSpace();
B[i] = inf.readInt(1, N, "B_"+to_string(i));
inf.readEoln();
inf.ensuref(bfA < A[i], "invalid A");
bfA = A[i];
}
inf.ensuref(reduce(B.begin(), B.end()) == N, "invalid B");
for(auto& a : A) a--;
vector<int> sB(M + 1, 0);
for(int i = 0; i < M; i++) sB[i + 1] = sB[i] + B[i];
int L = -2*N, R = 2*N;
for(int i = 0; i < M; i++)
{
int l = A[i] - sB[i + 1];
int r = A[i] - sB[i];
L = max(l, L);
R = min(r, R);
}
if(L < R) cout << "Yes\n";
else cout << "No\n";
}
inf.readEof();
inf.ensuref(smM <= MAX_M, "invalid sum M");
}
jastaway