记录编号 99177 评测结果 AAAAAAAAAA
题目名称 [网络流24题] 搭配飞行员 最终得分 100
用户昵称 GravatarAlan 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2014-04-25 23:11:52 内存使用 0.35 MiB
显示代码纯文本
//#define DB
#include<cstdio>
#include<fstream>
using namespace std;
ifstream fin("flyer.in");
ofstream fout("flyer.out");

#ifdef DB
  #include<iostream>
  #define fout cout
#endif

#define MAXN 105

int a[MAXN][MAXN];
int b[MAXN];
bool p[MAXN];
int sb;

bool find(int x) {
    for(int i = 1; i <= a[x][0]; ++i) {
      //fout<<x<<" "<<a[x][i]<<" "<<p[a[x][i]]<<endl;
      if(!p[a[x][i]]) {
        p[a[x][i]] = true;
        if(b[a[x][i]] == 0 || find(b[a[x][i]])) {
          p[a[x][i]] = false;
          b[a[x][i]] = x;
          return true;
        }
      }
    }
    return false;
}

int main(void)
{
    int N, M;
    fin>>N>>M;
    int x, y;
    while(fin>>x>>y) a[x][++a[x][0]] = y;
    int ans = 0;
    for(int i = 1; i <= N; ++i)
      if(find(i)) ans++;
    fout<<ans<<endl;
    #ifdef DB
    for(int i = 1; i <= N; ++i) fout<<i<<" "<<b[i]<<endl;
    system("pause");
    #endif
    return 0;
}