結果
問題 | No.2808 Concentration |
ユーザー |
![]() |
提出日時 | 2024-07-12 22:27:58 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,195 bytes |
コンパイル時間 | 4,978 ms |
コンパイル使用メモリ | 267,816 KB |
最終ジャッジ日時 | 2025-02-22 04:29:50 |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 42 WA * 15 |
ソースコード
#include <stdio.h>#include <bits/stdc++.h>#include <atcoder/all>using namespace atcoder;using mint = modint998244353;using namespace std;#define rep(i,n) for (int i = 0; i < (n); ++i)#define Inf32 1000000001#define Inf64 1000000000000000001long long op(long long a,long long b){return max(a,b);}long long e(){return -Inf64;}int main(){long long N,S,H;cin>>N>>S>>H;vector<long long> x,y,z;rep(i,N){long long a,b,c;cin>>a>>b>>c;x.push_back(a);y.push_back(b);z.push_back(c);}N = x.size();x.push_back(Inf64);y.push_back(Inf64);z.push_back(0);N++;z.insert(z.begin(),0);rep(i,N)z[i+1] += z[i];mcf_graph<long long,long long> G(N*2);rep(i,N){if(i!=N-1){G.add_edge(i,i+1,1,z[i+1]-z[i]);}{long long nxt = x[i] + S;int d = distance(y.begin(),upper_bound(y.begin(),y.end(),nxt));d--;if(d!=-1)G.add_edge(i,N+d,1,0);}if(i!=0){G.add_edge(N+i,N+i-1,1,z[i+1]-z[i]);}{long long nxt = y[i] + H;int d = distance(x.begin(),upper_bound(x.begin(),x.end(),nxt));if(d!=N)G.add_edge(N+i,d,1,z[d] - z[i+1]);}}long long ans = G.flow(0,N*2-1).second;cout<<z.back() - ans<<endl;return 0;}