답안 #437071

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
437071 2021-06-25T18:20:31 Z monsoon DNA 돌연변이 (IOI21_dna) C++17
0 / 100
45 ms 5916 KB
#include <bits/stdc++.h>
#include "dna.h"
using namespace std;
#define REP(i,n) for(int i=0;i<(n);++i)
typedef long long ll;

string A, B;
int n;
int code[256];

struct info {
  int cnt[3][3];
  info() {
    REP(a,3) REP(b,3) cnt[a][b] = 0;
  }
};
vector<info> pref;


void init(string A, string B) {
  code['A'] = 0;
  code['C'] = 1;
  code['T'] = 2;

  ::A = A;
  ::B = B;
  n = A.size();
  pref.resize(n+1);

  REP(i,n) {
    REP(a,3) REP(b,3) pref[i+1].cnt[a][b] = pref[i].cnt[a][b];
    pref[i+1].cnt[code[A[i]]][code[B[i]]]++;
  }
}

int get_distance(int x, int y) {
  info in;
  REP(a,3) REP(b,3) in.cnt[a][b] = pref[y+1].cnt[a][b] - pref[x].cnt[a][b];

  int ans = 0;
  REP(a,3) REP(b,a) {
    int c = min(in.cnt[a][b], in.cnt[b][a]);
    ans += c;
    in.cnt[a][b] -= c;
    in.cnt[b][a] -= c;
  }

  int sum = 0;
  REP(a,3) REP(b,3) sum += in.cnt[a][b];

  if (sum % 3 != 0) return -1;
  ans += sum/3 * 2;

  return ans;
}

Compilation message

dna.cpp: In function 'void init(std::string, std::string)':
dna.cpp:32:28: warning: array subscript has type 'char' [-Wchar-subscripts]
   32 |     pref[i+1].cnt[code[A[i]]][code[B[i]]]++;
      |                            ^
dna.cpp:32:40: warning: array subscript has type 'char' [-Wchar-subscripts]
   32 |     pref[i+1].cnt[code[A[i]]][code[B[i]]]++;
      |                                        ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 45 ms 5916 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 45 ms 5916 KB Output isn't correct
2 Halted 0 ms 0 KB -