結果
| 問題 |
No.2408 Lakes and Fish
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-08-11 23:21:17 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 885 bytes |
| コンパイル時間 | 615 ms |
| コンパイル使用メモリ | 72,660 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-18 18:47:11 |
| 合計ジャッジ時間 | 4,295 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 1 WA * 18 |
ソースコード
#include <iostream>
#include <vector>
#include <algorithm>
int absz( const int x )
{
return x > 0 ? x : -x;
}
int main( void )
{
int N = 1, M = 1;
std::cin >> N >> M;
std::vector<int> L( N );
for (int i = 0;i < N;i++) {
std::cin >> L[i];
}
int F = 0, B = 0, W = 0;
int sum = 0;
for (int i = 0; i < M; i++) {
std::cin >> F >> B >> W;
auto l = std::lower_bound( L.begin(), L.end(), F );
auto u = std::upper_bound( L.begin(), L.end(), F );
if (u != L.begin()) --u;
int d1 = absz( *l - F );
int d2 = absz( *u - F );
int nearest = d1 > d2 ? d2 : d1;
if (nearest < 1) {
sum += W;
}
else if (nearest < W - B) {
sum += W - nearest;
}
else {
sum += B;
}
}
std::cout << sum;
return 0;
}