Submission #870718

# Submission time Handle Problem Language Result Execution time Memory
870718 2023-11-09T01:55:52 Z NeroZein Izlet (COI19_izlet) C++17
18 / 100
365 ms 72056 KB
#include "bits/stdc++.h"
using namespace std;

#ifdef Nero
#include "Deb.h"
#else
#define deb(...)
#endif

const int N = 3003;

int pr[N]; 
int dep[N]; 
int col[N]; 
int c[N][N]; 

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int n;
  cin >> n >> n;
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) {
      cin >> c[i][j]; 
    }
  }
  for (int i = 1; i <= n; ++i) {
    if (pr[i] == 0) {
      for (int j = 2; j <= n; ++j) {
        if (c[i][j] == 1 && i != j) {
          pr[j] = i; 
        }
      }
    }
  }
  pr[1] = 1; 
  int cnt = 2; 
  col[1] = 1; 
  queue<int> que;
  que.push(1); 
  while (!que.empty()) {
    int v = que.front();
    que.pop(); 
    assert(dep[v] == c[1][v] - 1); 
    for (int i = 1; i <= n; ++i) {
      if (!pr[i] && c[v][i] == 2) {
        pr[i] = v; 
        que.push(i);
        dep[i] = dep[v] + 1; 
        int f = 0; 
        for (int j = 1; j <= n; ++j) {
          if (c[v][j] == c[i][j] && col[j] && (!f || dep[f] >= dep[j])) {
             f = j; 
          }
        }
        for (int j = 1; j <= n; ++j) {
          if (f && col[j] && c[v][j] == c[i][j] && dep[f] == dep[j]) {
            //assert(col[f] == col[j]); 
          }
        }
        if (!f) {
          col[i] = cnt++; 
        } else {
          assert(col[f]);
          col[i] = col[f]; 
        }
      }
    }
  }
  for (int i = 1; i <= n; ++i) {
    assert(col[i] || col[pr[i]]); 
    cout << (col[i] ? col[i] : col[pr[i]]) << ' '; 
  }
  cout << '\n';
  for (int i = 2; i <= n; ++i) {
    assert(pr[i]); 
    cout << pr[i] << ' ' << i << '\n'; 
  }
  return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 2396 KB Output is correct
2 Correct 347 ms 35668 KB Output is correct
3 Correct 352 ms 36180 KB Output is correct
4 Correct 365 ms 35720 KB Output is correct
5 Correct 338 ms 35456 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 355 ms 72056 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 2396 KB Output is correct
2 Correct 347 ms 35668 KB Output is correct
3 Correct 352 ms 36180 KB Output is correct
4 Correct 365 ms 35720 KB Output is correct
5 Correct 338 ms 35456 KB Output is correct
6 Runtime error 355 ms 72056 KB Execution killed with signal 6
7 Halted 0 ms 0 KB -