답안 #981522

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
981522 2024-05-13T09:42:55 Z faqinyeager DNA 돌연변이 (IOI21_dna) C++17
0 / 100
25 ms 4636 KB
#include "dna.h"
#include <bits/stdc++.h>

int n, a_cnt, b_cnt;
int asum[100050][3], bsum[100050][3];

void init(std::string a, std::string b){
	n = (int)a.size();
	for(int i = 0; i < n; i++){
		if(a[i] == 'A') asum[i][0] ++;
		else if(a[i] == 'C') asum[i][1] ++;
		else asum[i][2]++;

		if(b[i] == 'A') bsum[i][0] ++;
		else if(b[i] == 'C') bsum[i][1] ++;
		else bsum[i][2]++;
	}
	for(int i = 1; i < n; i++){
		for(int j = 0; j < 3; j++){
			asum[i][j] += asum[i - 1][j];
			bsum[i][j] += bsum[i - 1][j]; 
		}
	}
}

int get_distance(int x, int y){
	for(int j = 0; j < 3; j++){
		if(asum[y][j] - asum[x - 1][j] != bsum[y][j] - bsum[x - 1][j]){
			return -1;
		} 
	}
	int ans = 0;
	for(int i = x; i <= y; i++){
		int cnt = 0;
		for(int j = 0; j < 3; j++){
			if(asum[i][j] - asum[i - 1][j] != bsum[i][j] - bsum[i - 1][j]) cnt++;
		}
		if(cnt == 2) ans ++;
	}

	return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 25 ms 4636 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Incorrect 0 ms 2396 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Incorrect 0 ms 2396 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Incorrect 0 ms 2396 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 25 ms 4636 KB Output isn't correct
2 Halted 0 ms 0 KB -