Submission #110291


Source Code Expand

#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>

#define FOR(i, a, n) for(int i = (a); i < (n); i++)
#define REP(i, n) FOR(i, 0, n)

using namespace std;

const int MAX_H = 110;
const int MAX_W = 110;
const int MAX_N = MAX_H + MAX_W;

int h, w, n;
int u[MAX_H][MAX_W];
int f[MAX_W];
int s[MAX_H];

vector<int> g[MAX_N];
bool used[MAX_N];
int match[MAX_N];

bool check(){
  vector< vector<int> > t(h, vector<int>(w));
  REP(i, h) REP(j, w) if(u[i][j]){
    t[i][j] = min(s[i], f[j]);
  }
  REP(i, w){
    int tf = 0;
    REP(j, h){
      tf = max(tf, t[j][i]);
    }
    if(tf != f[i]) return false;
  }
  REP(i, h){
    int ts = 0;
    REP(j, w){
      ts = max(ts, t[i][j]);
    }
    if(ts != s[i]) return false;
  }
  return true;
}

bool dfs(int v){
  used[v] = true;
  REP(i, (int)g[v].size()){
    int u = g[v][i], w = match[u];
    if(w == -1 || (!used[w] && dfs(w))){
      match[v] = u;
      match[u] = v;
      return true;
    }
  }
  return false;
}

int bipartite_matching(){
  int r = 0;
  memset(match, -1, sizeof(match));
  REP(i, n){
    if(match[i] == -1){
      memset(used, false, sizeof(used));
      if(dfs(i)) r++;
    }
  }
  return r;
}


int solve(){
  if(!check()) return -1;
  REP(i, h) REP(j, w){
    if(u[i][j] && s[i] == f[j]){
      g[i].push_back(h + j);
      g[h + j].push_back(i);
    }
  }
  bipartite_matching();
  int r = 0, ct = 0;
  REP(i, h){
    r += s[i];
    ct++;
  }
  REP(i, w) if(match[h + i] == -1){
    r += f[i];
    ct++;
  }
  REP(i, h) REP(j, w){
    r += u[i][j];
  }
  return r - ct;
}

int main(){
  cin >> h >> w;
  n = h + w;
  REP(i, n) g[i].clear();
  REP(i, h) REP(j, w) cin >> u[i][j];
  REP(i, w) cin >> f[i];
  REP(i, h) cin >> s[i];
  cout << solve() << endl;
}

Submission Info

Submission Time
Task A - Anime Master
User torimal
Language C++ (GCC 4.4.7)
Score 0
Code Size 1864 Byte
Status WA
Exec Time 257 ms
Memory 928 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
WA × 57
RE × 32
Set Name Test Cases
All 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 4, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 5, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 6, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 7, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 8, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 9
Case Name Status Exec Time Memory
1 WA 23 ms 928 KB
10 WA 21 ms 812 KB
11 WA 21 ms 928 KB
12 WA 21 ms 924 KB
13 WA 21 ms 924 KB
14 WA 21 ms 924 KB
15 WA 21 ms 928 KB
16 WA 23 ms 792 KB
17 WA 21 ms 924 KB
18 WA 21 ms 924 KB
19 WA 20 ms 920 KB
2 WA 21 ms 924 KB
20 WA 21 ms 928 KB
21 WA 21 ms 928 KB
22 WA 21 ms 928 KB
23 WA 21 ms 924 KB
24 WA 23 ms 788 KB
25 WA 21 ms 928 KB
26 WA 21 ms 928 KB
27 WA 23 ms 788 KB
28 WA 23 ms 796 KB
29 WA 21 ms 924 KB
3 WA 22 ms 812 KB
30 WA 24 ms 920 KB
31 WA 23 ms 928 KB
32 WA 22 ms 924 KB
33 WA 21 ms 920 KB
34 WA 23 ms 796 KB
35 WA 21 ms 812 KB
36 WA 21 ms 920 KB
37 WA 21 ms 808 KB
38 WA 21 ms 800 KB
39 WA 23 ms 800 KB
4 WA 22 ms 816 KB
40 WA 21 ms 924 KB
41 WA 21 ms 928 KB
42 WA 21 ms 876 KB
43 WA 24 ms 812 KB
44 WA 21 ms 924 KB
45 WA 22 ms 928 KB
46 WA 22 ms 856 KB
47 WA 22 ms 924 KB
48 WA 21 ms 800 KB
49 WA 21 ms 920 KB
5 WA 21 ms 916 KB
50 WA 21 ms 924 KB
51 WA 21 ms 924 KB
52 WA 21 ms 920 KB
53 WA 22 ms 928 KB
54 WA 21 ms 916 KB
55 WA 21 ms 916 KB
56 WA 21 ms 928 KB
57 WA 21 ms 852 KB
58 RE 234 ms 796 KB
59 RE 235 ms 792 KB
6 WA 22 ms 924 KB
60 RE 241 ms 796 KB
61 RE 233 ms 920 KB
62 RE 236 ms 700 KB
63 RE 243 ms 796 KB
64 RE 257 ms 800 KB
65 RE 232 ms 796 KB
66 RE 232 ms 800 KB
67 RE 232 ms 796 KB
68 RE 240 ms 796 KB
69 RE 231 ms 800 KB
7 WA 19 ms 924 KB
70 RE 242 ms 792 KB
71 RE 234 ms 800 KB
72 RE 232 ms 796 KB
73 RE 234 ms 796 KB
74 RE 239 ms 796 KB
75 RE 235 ms 796 KB
76 RE 233 ms 796 KB
77 RE 235 ms 792 KB
78 RE 238 ms 800 KB
79 RE 230 ms 796 KB
8 WA 21 ms 924 KB
80 RE 233 ms 748 KB
81 RE 238 ms 796 KB
82 RE 238 ms 800 KB
83 RE 236 ms 800 KB
84 RE 233 ms 796 KB
85 RE 232 ms 796 KB
86 RE 235 ms 800 KB
87 RE 253 ms 920 KB
88 RE 233 ms 796 KB
89 RE 239 ms 796 KB
9 WA 19 ms 924 KB