Submission #8002355
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,n) for(int i=0;i<(n);i++)
#define pb push_back
#define all(v) (v).begin(),(v).end()
#define fi first
#define se second
typedef vector<int>vint;
typedef pair<int,int>pint;
typedef vector<pint>vpint;
template<typename A,typename B>inline void chmin(A &a,B b){if(a>b)a=b;}
template<typename A,typename B>inline void chmax(A &a,B b){if(a<b)a=b;}
template<class A,class B>
ostream& operator<<(ostream& ost,const pair<A,B>&p){
ost<<"{"<<p.first<<","<<p.second<<"}";
return ost;
}
template<class T>
ostream& operator<<(ostream& ost,const vector<T>&v){
ost<<"{";
for(int i=0;i<v.size();i++){
if(i)ost<<",";
ost<<v[i];
}
ost<<"}";
return ost;
}
struct PrimalDual{
using F=long long;
static const F INF;
struct Edge{
int to;
F cap,cost;
int rev;
Edge(int to,F cap,F cost,int rev):to(to),cap(cap),cost(cost),rev(rev){}
};
int n;
vector<vector<Edge>>G;
PrimalDual(int n):n(n),G(n){}
void addEdge(int from,int to,F cap,F cost){
G[from].push_back(Edge(to,cap,cost,G[to].size()));
G[to].push_back(Edge(from,0,-cost,G[from].size()-1));
}
F minCostFlow(int s,int t,F f){
F cur=0;
vector<F>h(n);
vector<int>prevv(n,-1),preve(n,-1);
vector<F>dist(n);
priority_queue<pair<F,int>,vector<pair<F,int>>,greater<pair<F,int>>>que;
while(f>0){
fill(dist.begin(),dist.end(),INF);
dist[s]=0;
que.emplace(0,s);
while(que.size()){
F d;
int v;
tie(d,v)=que.top();
que.pop();
if(dist[v]<d)continue;
for(int i=0;i<G[v].size();i++){
Edge &e=G[v][i];
F nd=dist[v]+e.cost+h[v]-h[e.to];
if(e.cap>0&&dist[e.to]>nd){
dist[e.to]=nd;
prevv[e.to]=v;preve[e.to]=i;
que.emplace(nd,e.to);
}
}
}
if(dist[t]==INF)return INF;
for(int v=0;v<n;v++)h[v]+=dist[v];
F nf=f;
for(int v=t;v!=s;v=prevv[v]){
nf=min(nf,G[prevv[v]][preve[v]].cap);
}
f-=nf;
cur+=nf*h[t];
for(int v=t;v!=s;v=prevv[v]){
Edge &e=G[prevv[v]][preve[v]];
e.cap-=nf;
G[v][e.rev].cap+=nf;
}
}
return cur;
}
};
const PrimalDual::F PrimalDual::INF=1ll<<50;
signed main(){
int N,M,D;
scanf("%lld%lld%lld",&N,&M,&D);
PrimalDual pd(N+M+D+2);
int src=N+M+D,snk=N+M+D+1;
rep(i,M){
int c,s,k;
scanf("%lld%lld%lld",&c,&s,&k);
s--;
pd.addEdge(N+M+s,N+i,1,0);
rep(j,k){
int a;scanf("%lld",&a);
a--;
pd.addEdge(N+i,a,1,c);
}
}
rep(i,D){
int b;scanf("%lld",&b);
pd.addEdge(src,N+M+i,b,0);
}
rep(i,N)pd.addEdge(i,snk,1,0);
int tmp=pd.minCostFlow(src,snk,N);
if(tmp==PrimalDual::INF){
puts("-1");
}
else{
printf("%lld\n",tmp);
}
return 0;
}
Submission Info
Submission Time
2019-10-18 01:12:16+0900
Task
J - きたまさの逆襲
User
latte0119
Language
C++14 (GCC 5.4.1)
Score
300
Code Size
3434 Byte
Status
AC
Exec Time
31 ms
Memory
1024 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:106:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld%lld%lld",&N,&M,&D);
^
./Main.cpp:112:39: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld%lld%lld",&c,&s,&k);
^
./Main.cpp:116:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
int a;scanf("%lld",&a);
^
./Main.cpp:123:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
int b;scanf("%lld",&b);
^
Judge Result
Set Name
Set 01
Set 02
Score / Max Score
50 / 50
250 / 250
Status
Set Name
Test Cases
Set 01
00_smallest.txt, 01_small_0.txt, 01_small_1.txt, 01_small_10.txt, 01_small_11.txt, 01_small_12.txt, 01_small_13.txt, 01_small_14.txt, 01_small_15.txt, 01_small_16.txt, 01_small_17.txt, 01_small_18.txt, 01_small_19.txt, 01_small_2.txt, 01_small_3.txt, 01_small_4.txt, 01_small_5.txt, 01_small_6.txt, 01_small_7.txt, 01_small_8.txt, 01_small_9.txt, 02_large_0.txt, 02_large_1.txt, 02_large_2.txt, 02_large_3.txt, 02_large_4.txt, 02_large_5.txt, 02_large_6.txt, 02_large_7.txt, 02_large_8.txt, 02_large_9.txt, 09_largest_0.txt, 09_largest_1.txt, 09_largest_2.txt, 09_largest_3.txt, 09_largest_4.txt
Set 02
00_smallest.txt, 01_small_0.txt, 01_small_1.txt, 01_small_10.txt, 01_small_11.txt, 01_small_12.txt, 01_small_13.txt, 01_small_14.txt, 01_small_15.txt, 01_small_16.txt, 01_small_17.txt, 01_small_18.txt, 01_small_19.txt, 01_small_2.txt, 01_small_3.txt, 01_small_4.txt, 01_small_5.txt, 01_small_6.txt, 01_small_7.txt, 01_small_8.txt, 01_small_9.txt, 02_large_0.txt, 02_large_1.txt, 02_large_2.txt, 02_large_3.txt, 02_large_4.txt, 02_large_5.txt, 02_large_6.txt, 02_large_7.txt, 02_large_8.txt, 02_large_9.txt, 09_largest_0.txt, 09_largest_1.txt, 09_largest_2.txt, 09_largest_3.txt, 09_largest_4.txt, 10_smallest.txt, 11_small_0.txt, 11_small_1.txt, 11_small_10.txt, 11_small_11.txt, 11_small_12.txt, 11_small_13.txt, 11_small_14.txt, 11_small_15.txt, 11_small_16.txt, 11_small_17.txt, 11_small_18.txt, 11_small_19.txt, 11_small_2.txt, 11_small_20.txt, 11_small_21.txt, 11_small_22.txt, 11_small_23.txt, 11_small_24.txt, 11_small_25.txt, 11_small_26.txt, 11_small_27.txt, 11_small_28.txt, 11_small_29.txt, 11_small_3.txt, 11_small_4.txt, 11_small_5.txt, 11_small_6.txt, 11_small_7.txt, 11_small_8.txt, 11_small_9.txt, 12_large_0.txt, 12_large_1.txt, 12_large_10.txt, 12_large_11.txt, 12_large_12.txt, 12_large_13.txt, 12_large_14.txt, 12_large_15.txt, 12_large_16.txt, 12_large_17.txt, 12_large_18.txt, 12_large_19.txt, 12_large_2.txt, 12_large_3.txt, 12_large_4.txt, 12_large_5.txt, 12_large_6.txt, 12_large_7.txt, 12_large_8.txt, 12_large_9.txt, 19_largest_0.txt, 19_largest_1.txt, 19_largest_2.txt, 19_largest_3.txt, 19_largest_4.txt, sample1.txt, sample2.txt, sample3.txt
Case Name
Status
Exec Time
Memory
00_smallest.txt
AC
1 ms
256 KB
01_small_0.txt
AC
1 ms
256 KB
01_small_1.txt
AC
1 ms
256 KB
01_small_10.txt
AC
1 ms
256 KB
01_small_11.txt
AC
1 ms
256 KB
01_small_12.txt
AC
1 ms
256 KB
01_small_13.txt
AC
1 ms
256 KB
01_small_14.txt
AC
1 ms
256 KB
01_small_15.txt
AC
1 ms
256 KB
01_small_16.txt
AC
1 ms
256 KB
01_small_17.txt
AC
1 ms
256 KB
01_small_18.txt
AC
1 ms
256 KB
01_small_19.txt
AC
1 ms
256 KB
01_small_2.txt
AC
1 ms
256 KB
01_small_3.txt
AC
1 ms
256 KB
01_small_4.txt
AC
1 ms
256 KB
01_small_5.txt
AC
1 ms
256 KB
01_small_6.txt
AC
1 ms
256 KB
01_small_7.txt
AC
1 ms
256 KB
01_small_8.txt
AC
1 ms
256 KB
01_small_9.txt
AC
1 ms
256 KB
02_large_0.txt
AC
7 ms
768 KB
02_large_1.txt
AC
4 ms
384 KB
02_large_2.txt
AC
13 ms
640 KB
02_large_3.txt
AC
5 ms
768 KB
02_large_4.txt
AC
7 ms
768 KB
02_large_5.txt
AC
16 ms
768 KB
02_large_6.txt
AC
15 ms
768 KB
02_large_7.txt
AC
5 ms
640 KB
02_large_8.txt
AC
3 ms
512 KB
02_large_9.txt
AC
3 ms
640 KB
09_largest_0.txt
AC
21 ms
896 KB
09_largest_1.txt
AC
20 ms
896 KB
09_largest_2.txt
AC
20 ms
896 KB
09_largest_3.txt
AC
20 ms
896 KB
09_largest_4.txt
AC
18 ms
896 KB
10_smallest.txt
AC
1 ms
256 KB
11_small_0.txt
AC
1 ms
256 KB
11_small_1.txt
AC
1 ms
256 KB
11_small_10.txt
AC
1 ms
256 KB
11_small_11.txt
AC
1 ms
256 KB
11_small_12.txt
AC
1 ms
256 KB
11_small_13.txt
AC
1 ms
256 KB
11_small_14.txt
AC
1 ms
256 KB
11_small_15.txt
AC
1 ms
256 KB
11_small_16.txt
AC
1 ms
256 KB
11_small_17.txt
AC
1 ms
256 KB
11_small_18.txt
AC
1 ms
256 KB
11_small_19.txt
AC
1 ms
256 KB
11_small_2.txt
AC
1 ms
256 KB
11_small_20.txt
AC
1 ms
256 KB
11_small_21.txt
AC
1 ms
256 KB
11_small_22.txt
AC
1 ms
256 KB
11_small_23.txt
AC
1 ms
256 KB
11_small_24.txt
AC
1 ms
256 KB
11_small_25.txt
AC
1 ms
256 KB
11_small_26.txt
AC
1 ms
256 KB
11_small_27.txt
AC
1 ms
256 KB
11_small_28.txt
AC
1 ms
256 KB
11_small_29.txt
AC
1 ms
256 KB
11_small_3.txt
AC
1 ms
256 KB
11_small_4.txt
AC
1 ms
256 KB
11_small_5.txt
AC
1 ms
256 KB
11_small_6.txt
AC
1 ms
256 KB
11_small_7.txt
AC
1 ms
256 KB
11_small_8.txt
AC
1 ms
256 KB
11_small_9.txt
AC
1 ms
256 KB
12_large_0.txt
AC
9 ms
640 KB
12_large_1.txt
AC
1 ms
384 KB
12_large_10.txt
AC
3 ms
640 KB
12_large_11.txt
AC
14 ms
768 KB
12_large_12.txt
AC
15 ms
768 KB
12_large_13.txt
AC
6 ms
384 KB
12_large_14.txt
AC
9 ms
512 KB
12_large_15.txt
AC
17 ms
896 KB
12_large_16.txt
AC
3 ms
640 KB
12_large_17.txt
AC
17 ms
768 KB
12_large_18.txt
AC
6 ms
640 KB
12_large_19.txt
AC
10 ms
768 KB
12_large_2.txt
AC
8 ms
640 KB
12_large_3.txt
AC
13 ms
896 KB
12_large_4.txt
AC
11 ms
640 KB
12_large_5.txt
AC
2 ms
384 KB
12_large_6.txt
AC
6 ms
768 KB
12_large_7.txt
AC
7 ms
640 KB
12_large_8.txt
AC
4 ms
384 KB
12_large_9.txt
AC
7 ms
512 KB
19_largest_0.txt
AC
31 ms
1024 KB
19_largest_1.txt
AC
23 ms
896 KB
19_largest_2.txt
AC
23 ms
896 KB
19_largest_3.txt
AC
23 ms
896 KB
19_largest_4.txt
AC
23 ms
896 KB
sample1.txt
AC
1 ms
256 KB
sample2.txt
AC
1 ms
256 KB
sample3.txt
AC
1 ms
256 KB