Please sign in first.
Submission #27806041
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);
}
}
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];
long long ans=ans_base;
for(auto[cap,cost]:g.slope(0,h+w+1))ans=min(ans,ans_base+cost-INF*cap);
cout << ans << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | H - Minimum Coloring |
| User | kyopro_friends |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 996 Byte |
| Status | AC |
| Exec Time | 28 ms |
| Memory | 3880 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 | 3 ms | 3612 KiB |
| random_01.txt | AC | 2 ms | 3500 KiB |
| random_02.txt | AC | 2 ms | 3684 KiB |
| random_03.txt | AC | 3 ms | 3560 KiB |
| random_04.txt | AC | 2 ms | 3628 KiB |
| random_05.txt | AC | 2 ms | 3572 KiB |
| random_06.txt | AC | 2 ms | 3572 KiB |
| random_07.txt | AC | 4 ms | 3500 KiB |
| random_08.txt | AC | 2 ms | 3580 KiB |
| random_09.txt | AC | 2 ms | 3516 KiB |
| random_10.txt | AC | 4 ms | 3720 KiB |
| random_11.txt | AC | 3 ms | 3728 KiB |
| random_12.txt | AC | 3 ms | 3688 KiB |
| random_13.txt | AC | 2 ms | 3580 KiB |
| random_14.txt | AC | 3 ms | 3732 KiB |
| random_15.txt | AC | 3 ms | 3744 KiB |
| random_16.txt | AC | 3 ms | 3608 KiB |
| random_17.txt | AC | 16 ms | 3708 KiB |
| random_18.txt | AC | 3 ms | 3712 KiB |
| random_19.txt | AC | 5 ms | 3840 KiB |
| random_20.txt | AC | 3 ms | 3632 KiB |
| random_21.txt | AC | 7 ms | 3660 KiB |
| random_22.txt | AC | 4 ms | 3760 KiB |
| random_23.txt | AC | 6 ms | 3620 KiB |
| random_24.txt | AC | 5 ms | 3640 KiB |
| random_25.txt | AC | 14 ms | 3816 KiB |
| random_26.txt | AC | 16 ms | 3812 KiB |
| random_27.txt | AC | 18 ms | 3880 KiB |
| random_28.txt | AC | 13 ms | 3852 KiB |
| random_29.txt | AC | 28 ms | 3700 KiB |
| random_30.txt | AC | 24 ms | 3776 KiB |
| random_31.txt | AC | 5 ms | 3684 KiB |
| random_32.txt | AC | 3 ms | 3736 KiB |
| random_33.txt | AC | 4 ms | 3684 KiB |
| random_34.txt | AC | 4 ms | 3632 KiB |
| random_35.txt | AC | 3 ms | 3684 KiB |
| random_36.txt | AC | 4 ms | 3756 KiB |
| random_37.txt | AC | 3 ms | 3844 KiB |
| sample_01.txt | AC | 2 ms | 3684 KiB |
| sample_02.txt | AC | 2 ms | 3556 KiB |
| sample_03.txt | AC | 2 ms | 3660 KiB |