제출 #871291

#제출 시각아이디문제언어결과실행 시간메모리
871291LucaLucaMDNA 돌연변이 (IOI21_dna)C++17
43 / 100
1533 ms3924 KiB
#include "dna.h"
#include <iostream>

std::string s, q;
int n;

void init(std::string a, std::string b) {
  n = (int) a.size();
  for (auto &ch : a) {
    if (ch == 'A') {
      ch = 0;
    } else if (ch == 'C') {
      ch = 1;
    } else {
      ch = 2;
    }
  }
  for (auto &ch : b) {
    if (ch == 'A') {
      ch = 0;
    } else if (ch == 'C') {
      ch = 1;
    } else {
      ch = 2;
    }
  }
  s = '$' + a, q = '$' + b;
}

int get_distance(int x, int y) {
  ++x, ++y;
  int bad = 0;
  int d[3] = {};
  for (int i = x; i <= y; i++) {
    if (s[i] != q[i]) {
      bad++;
    }
    d[s[i]]++;
    d[q[i]]--;
  }
  if (d[0] != 0 || d[1] != 0 || d[2] != 0) {
    return -1;
  }
  return (bad + 1) / 2;
}

/**
6 3
ATACAT
ACTATA
1 3
4 5
3 5

123
231

**/

컴파일 시 표준 에러 (stderr) 메시지

dna.cpp: In function 'int get_distance(int, int)':
dna.cpp:38:11: warning: array subscript has type 'char' [-Wchar-subscripts]
   38 |     d[s[i]]++;
      |           ^
dna.cpp:39:11: warning: array subscript has type 'char' [-Wchar-subscripts]
   39 |     d[q[i]]--;
      |           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...