Submission #27806120
Source Code Expand
#include<bits/stdc++.h>
#include<atcoder/all>
using namespace std;
using namespace atcoder;
int main(){
int h,w,n;
cin >> h >> w >> n;
vector<int>hmin(h,1e9),wmin(w,1e9);
vector<tuple<int,int,int>>p;
for(int i=0;i<n;i++){
int a,b,c;
cin >> a >> b >> c;
a--,b--;
hmin[a]=min(hmin[a],c);
wmin[b]=min(wmin[b],c);
p.push_back(make_tuple(a,b,c));
}
mcf_graph<int,long long>g(h+w+2);
//0:source, 1-h:row, h+1-h+w:col, h+w+1:sink
for(int i=1;i<=h;i++)g.add_edge(0,i,1,0);
for(int i=1;i<=w;i++)g.add_edge(h+i,h+w+1,1,0);
const long long INF=2e9;
for(int i=0;i<n;i++){
auto[a,b,c]=p[i];
if(c<hmin[a]+wmin[b]){
g.add_edge(a+1,b+h+1,1,c-hmin[a]-wmin[b]+INF);
}
}
g.add_edge(0,h+w+1,min(h,w),INF);
long long ans_base=0;
for(int i=0;i<h;i++)ans_base+=hmin[i];
for(int i=0;i<w;i++)ans_base+=wmin[i];
auto[cap,cost]=g.flow(0,h+w+1,min(h,w));
cout << ans_base+cost-INF*cap << endl;
}
Submission Info
| Submission Time |
|
| Task |
H - Minimum Coloring |
| User |
kyopro_friends |
| Language |
C++ (GCC 9.2.1) |
| Score |
600 |
| Code Size |
993 Byte |
| Status |
AC |
| Exec Time |
39 ms |
| Memory |
3900 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
600 / 600 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
| All |
hand_01.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, random_36.txt, random_37.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| Case Name |
Status |
Exec Time |
Memory |
| hand_01.txt |
AC |
11 ms |
3612 KiB |
| random_01.txt |
AC |
2 ms |
3664 KiB |
| random_02.txt |
AC |
3 ms |
3484 KiB |
| random_03.txt |
AC |
4 ms |
3552 KiB |
| random_04.txt |
AC |
2 ms |
3660 KiB |
| random_05.txt |
AC |
2 ms |
3492 KiB |
| random_06.txt |
AC |
2 ms |
3564 KiB |
| random_07.txt |
AC |
3 ms |
3492 KiB |
| random_08.txt |
AC |
3 ms |
3700 KiB |
| random_09.txt |
AC |
2 ms |
3712 KiB |
| random_10.txt |
AC |
2 ms |
3728 KiB |
| random_11.txt |
AC |
3 ms |
3720 KiB |
| random_12.txt |
AC |
4 ms |
3728 KiB |
| random_13.txt |
AC |
2 ms |
3628 KiB |
| random_14.txt |
AC |
3 ms |
3584 KiB |
| random_15.txt |
AC |
3 ms |
3692 KiB |
| random_16.txt |
AC |
4 ms |
3600 KiB |
| random_17.txt |
AC |
8 ms |
3688 KiB |
| random_18.txt |
AC |
5 ms |
3692 KiB |
| random_19.txt |
AC |
5 ms |
3768 KiB |
| random_20.txt |
AC |
2 ms |
3492 KiB |
| random_21.txt |
AC |
11 ms |
3772 KiB |
| random_22.txt |
AC |
5 ms |
3784 KiB |
| random_23.txt |
AC |
4 ms |
3628 KiB |
| random_24.txt |
AC |
4 ms |
3564 KiB |
| random_25.txt |
AC |
13 ms |
3764 KiB |
| random_26.txt |
AC |
14 ms |
3816 KiB |
| random_27.txt |
AC |
14 ms |
3836 KiB |
| random_28.txt |
AC |
16 ms |
3784 KiB |
| random_29.txt |
AC |
39 ms |
3896 KiB |
| random_30.txt |
AC |
34 ms |
3900 KiB |
| random_31.txt |
AC |
4 ms |
3800 KiB |
| random_32.txt |
AC |
4 ms |
3808 KiB |
| random_33.txt |
AC |
4 ms |
3792 KiB |
| random_34.txt |
AC |
4 ms |
3796 KiB |
| random_35.txt |
AC |
4 ms |
3720 KiB |
| random_36.txt |
AC |
3 ms |
3824 KiB |
| random_37.txt |
AC |
3 ms |
3656 KiB |
| sample_01.txt |
AC |
2 ms |
3684 KiB |
| sample_02.txt |
AC |
2 ms |
3488 KiB |
| sample_03.txt |
AC |
2 ms |
3608 KiB |