Submission #981523

# Submission time Handle Problem Language Result Execution time Memory
981523 2024-05-13T09:45:42 Z faqinyeager Mutating DNA (IOI21_dna) C++17
43 / 100
1500 ms 5460 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 + 1) / 2;
}
# Verdict Execution time Memory Grader output
1 Correct 26 ms 4636 KB Output is correct
2 Correct 26 ms 5404 KB Output is correct
3 Correct 26 ms 5152 KB Output is correct
4 Correct 26 ms 5132 KB Output is correct
5 Correct 1 ms 2392 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 0 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 3 ms 3420 KB Output is correct
5 Correct 4 ms 3500 KB Output is correct
6 Correct 3 ms 3420 KB Output is correct
7 Correct 6 ms 3164 KB Output is correct
8 Correct 5 ms 3416 KB Output is correct
9 Correct 3 ms 3420 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 0 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 3 ms 3420 KB Output is correct
5 Correct 4 ms 3500 KB Output is correct
6 Correct 3 ms 3420 KB Output is correct
7 Correct 6 ms 3164 KB Output is correct
8 Correct 5 ms 3416 KB Output is correct
9 Correct 3 ms 3420 KB Output is correct
10 Correct 26 ms 5336 KB Output is correct
11 Correct 26 ms 5460 KB Output is correct
12 Execution timed out 1541 ms 5212 KB Time limit exceeded
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 0 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 3 ms 3420 KB Output is correct
5 Correct 4 ms 3500 KB Output is correct
6 Correct 3 ms 3420 KB Output is correct
7 Correct 6 ms 3164 KB Output is correct
8 Correct 5 ms 3416 KB Output is correct
9 Correct 3 ms 3420 KB Output is correct
10 Correct 4 ms 3260 KB Output is correct
11 Correct 4 ms 3260 KB Output is correct
12 Incorrect 3 ms 3164 KB Output isn't correct
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 26 ms 4636 KB Output is correct
2 Correct 26 ms 5404 KB Output is correct
3 Correct 26 ms 5152 KB Output is correct
4 Correct 26 ms 5132 KB Output is correct
5 Correct 1 ms 2392 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 0 ms 2396 KB Output is correct
10 Correct 1 ms 2396 KB Output is correct
11 Correct 3 ms 3420 KB Output is correct
12 Correct 4 ms 3500 KB Output is correct
13 Correct 3 ms 3420 KB Output is correct
14 Correct 6 ms 3164 KB Output is correct
15 Correct 5 ms 3416 KB Output is correct
16 Correct 3 ms 3420 KB Output is correct
17 Correct 26 ms 5336 KB Output is correct
18 Correct 26 ms 5460 KB Output is correct
19 Execution timed out 1541 ms 5212 KB Time limit exceeded
20 Halted 0 ms 0 KB -