1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//zbugowana implementacja niedziałającego algorytmu
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> g[500];
int d[500][5];
int main(){
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, m, k, r = 0;
  cin >> n >> m >> k;
  for(int i = 0;i < m;i++){
    int x, y;
    cin >> x >> y;
    g[y].push_back(x);
  }
  for(int i = 1;i <= n;i++){
    d[i][0] = 1;
    for(int j = 0;j < g[i].size();j++){
      d[i][0] = max(d[i][0], d[g[i][j]][0] + 1);
    }
    for(int j = 1;j < i;j++){
      d[i][1] = max(d[i][1], min(d[j][0], d[j][1] + 1));
      d[i][2] = max(d[i][2], min(d[j][1], d[j][2] + 1));
      d[i][3] = max(d[i][3], min(d[j][2], d[j][3] + 1));
      d[i][4] = max(d[i][4], min(d[j][3], d[j][4] + 1));
      r = max(r, d[i][k]);
    }
  }
  cout << r << endl;
}