Submission #441067

# Submission time Handle Problem Language Result Execution time Memory
441067 2021-07-04T04:08:12 Z lalafa Mutating DNA (IOI21_dna) C++17
71 / 100
1500 ms 2396 KB
#include <string>
#include <algorithm>

static std::string a_, b_;
void init(std::string a, std::string b) {
  a_ = a;
  b_ = b;
}
int get_distance(int x, int y) {
  int c[3] = {0,0,0};
  int cc[3][3];
  for (int i = 0; i <9 ; ++i) cc[i/3][i%3] = 0;
  auto v = [](char c) { return c == 'A' ? 0 : c == 'C' ? 1 : 2; };
  for (int i = x; i <= y; ++i) {
    int v0 = v(a_[i]), v1 = v(b_[i]);
    ++cc[v0][v1];
    ++c[v0];
    --c[v1];
  }
  if (c[0] != 0 || c[1] != 0 || c[2] != 0) return -1;
  int res = 0, mv = 0;
  for (int v0 = 0; v0 < 2; ++v0) {
    for (int v1 = v0 + 1; v1 < 3; ++v1) {
      int vlo = std::min(cc[v0][v1], cc[v1][v0]);
      int vhi = std::max(cc[v0][v1], cc[v1][v0]);
      res += vlo;
      mv = std::max(mv, vhi - vlo);
    }
  }
  return res + 2 * mv;
}
# Verdict Execution time Memory Grader output
1 Correct 37 ms 2372 KB Output is correct
2 Correct 37 ms 2352 KB Output is correct
3 Correct 38 ms 2340 KB Output is correct
4 Correct 37 ms 2356 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Correct 0 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 2 ms 972 KB Output is correct
5 Correct 2 ms 972 KB Output is correct
6 Correct 2 ms 972 KB Output is correct
7 Correct 6 ms 1000 KB Output is correct
8 Correct 6 ms 1060 KB Output is correct
9 Correct 3 ms 972 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 2 ms 972 KB Output is correct
5 Correct 2 ms 972 KB Output is correct
6 Correct 2 ms 972 KB Output is correct
7 Correct 6 ms 1000 KB Output is correct
8 Correct 6 ms 1060 KB Output is correct
9 Correct 3 ms 972 KB Output is correct
10 Correct 37 ms 2392 KB Output is correct
11 Correct 37 ms 2396 KB Output is correct
12 Execution timed out 1579 ms 2124 KB Time limit exceeded
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 2 ms 972 KB Output is correct
5 Correct 2 ms 972 KB Output is correct
6 Correct 2 ms 972 KB Output is correct
7 Correct 6 ms 1000 KB Output is correct
8 Correct 6 ms 1060 KB Output is correct
9 Correct 3 ms 972 KB Output is correct
10 Correct 2 ms 972 KB Output is correct
11 Correct 2 ms 972 KB Output is correct
12 Correct 2 ms 972 KB Output is correct
13 Correct 5 ms 972 KB Output is correct
14 Correct 5 ms 972 KB Output is correct
15 Correct 4 ms 1060 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 37 ms 2372 KB Output is correct
2 Correct 37 ms 2352 KB Output is correct
3 Correct 38 ms 2340 KB Output is correct
4 Correct 37 ms 2356 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Correct 0 ms 204 KB Output is correct
8 Correct 0 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Correct 0 ms 204 KB Output is correct
11 Correct 2 ms 972 KB Output is correct
12 Correct 2 ms 972 KB Output is correct
13 Correct 2 ms 972 KB Output is correct
14 Correct 6 ms 1000 KB Output is correct
15 Correct 6 ms 1060 KB Output is correct
16 Correct 3 ms 972 KB Output is correct
17 Correct 37 ms 2392 KB Output is correct
18 Correct 37 ms 2396 KB Output is correct
19 Execution timed out 1579 ms 2124 KB Time limit exceeded
20 Halted 0 ms 0 KB -