Submission #565960

#TimeUsernameProblemLanguageResultExecution timeMemory
565960FairyWinxMutating DNA (IOI21_dna)C++17
Compilation error
0 ms0 KiB
#include "dna.h"
#include <vector>

#define all(a) a.begin(), a.end();

using namespace std;

vector<int> a, b;

void init(std::string _a, std::string _b) {
	a.resize(_a.size());
	b.resize(_b.size());
	for (int i = 0; i < (int) _a.size(); ++i) {
		if (_a[i] == 'A') {
			a[i] = 0;
		} else if (_a[i] == 'T') {
			a[i] = 1;
		} else {
			a[i] = 2;
		}
		if (_b[i] == 'A') {
			b[i] = 0;
		} else if (_b[i] == 'T') {
			b[i] = 1;
		} else {
			b[i] = 2;
		}
	}
}

int get_distance(int x, int y) {
	array<int, 3> c1, c2;
	int sum = 0;
	fill(all(c1), 0);
	fill(all(c2), 0);
	for (int i = x; i <= y; ++i) {
		if (a[i] != b[i]) {
			++c1[a[i]];
			++c2[b[i]];
			++sum;
		}
	}
	if (c1 != c2) {
		return -1;
	} else {
		return max(*max_element(all(c1)), (sum + 1) / 2);
	}
	return 0;
}

Compilation message (stderr)

dna.cpp: In function 'int get_distance(int, int)':
dna.cpp:32:2: error: 'array' was not declared in this scope
   32 |  array<int, 3> c1, c2;
      |  ^~~~~
dna.cpp:3:1: note: 'std::array' is defined in header '<array>'; did you forget to '#include <array>'?
    2 | #include <vector>
  +++ |+#include <array>
    3 | 
dna.cpp:32:8: error: expected primary-expression before 'int'
   32 |  array<int, 3> c1, c2;
      |        ^~~
dna.cpp:34:11: error: 'c1' was not declared in this scope
   34 |  fill(all(c1), 0);
      |           ^~
dna.cpp:4:16: note: in definition of macro 'all'
    4 | #define all(a) a.begin(), a.end();
      |                ^
dna.cpp:34:14: error: expected primary-expression before ',' token
   34 |  fill(all(c1), 0);
      |              ^
dna.cpp:35:11: error: 'c2' was not declared in this scope
   35 |  fill(all(c2), 0);
      |           ^~
dna.cpp:4:16: note: in definition of macro 'all'
    4 | #define all(a) a.begin(), a.end();
      |                ^
dna.cpp:35:14: error: expected primary-expression before ',' token
   35 |  fill(all(c2), 0);
      |              ^
dna.cpp:46:34: error: expected primary-expression before ')' token
   46 |   return max(*max_element(all(c1)), (sum + 1) / 2);
      |                                  ^