結果
| 問題 | No.654 Air E869120 | 
| コンテスト | |
| ユーザー |  daikiti10915465 | 
| 提出日時 | 2020-05-21 19:14:38 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                WA
                                 
                             | 
| 実行時間 | - | 
| コード長 | 1,750 bytes | 
| コンパイル時間 | 1,760 ms | 
| コンパイル使用メモリ | 173,476 KB | 
| 実行使用メモリ | 5,248 KB | 
| 最終ジャッジ日時 | 2024-10-02 00:07:38 | 
| 合計ジャッジ時間 | 2,965 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 WA * 1 | 
| other | AC * 11 WA * 24 | 
ソースコード
#include<bits/stdc++.h>
using namespace std;
#define arep(i,x,n) for(int i=int(x);i<(int)(n);i++)
#define rep(i,n) for(long long i = 0;i < n;++i)
#define pi 3.141592653589793
#define eps 0.00000001
#define INF 1e9+7  
using ll = long long; 
using P=pair<int,int>;
using lP=pair<ll,ll>;
using fP=pair<double,double>;
ll const mod=998244353;
const ll MAX=1010;
using vi=vector<int>;
using vc=vector<char>;
using vs=vector<string>;
using vvi =vector<vector<int>>;
using vvc=vector<vector<char>>;
using vvp =vector<vector<P>>;
int d;
struct edge{
    int to,cap,rev,st,et;
    edge(int t,int c,int r,int s,int e)
    : to(t),cap(c),rev(r),st(s),et(e){}
};
struct graf{
    vector<edge> G[MAX];
    int used[MAX];
    void init(){memset(used,0,sizeof(used));}
    void add(int from,int to,int cap,int st,int et){
        G[from].push_back(edge(to,cap,(int)G[to].size(),st,et));
        G[to].push_back(edge(from,0,(int)G[from].size()-1,INF,st));
    }
    int dfs(int s, int t, int f, int time){
        if(s==t)return f;
        used[s]=1;
        for(edge& e:G[s]){
            if(used[e.to]==1||e.cap<=0||time>0&&time+d>e.st)continue;
            int x=dfs(e.to,t,min(f,e.cap),e.et);
            if(x<=0)continue;
            e.cap-=x;
            G[e.to][e.rev].cap+=x;
            return x;
        }
        return 0;
    }
    int max_flow(int s,int t){
        int ans=0;
        while(1){
            init();
            int f=dfs(s,t,INF,0);
            if(f==0)return ans;
            ans+=f;
        }
    }
    
};
int main(){
    int n,m;
    cin>>n>>m>>d;
    graf mf;
    rep(i,m){
        int u,v,p,q,w;
        cin>>u>>v>>p>>q>>w;
        u--,v--;
        mf.add(u,v,w,p,q);
    }
    cout<<mf.max_flow(0,n-1)<<endl;
    return 0;
}
            
            
            
        