For this Question: Given is a positive integer N, where none of the digits is 0. Let k be the number of digits in N. We want to make a multiple of 3 by erasing at least 0 and at most k−1 digits from N and concatenating the remaining digits without changing the order. Determine whether it is possible to make a multiple of 3 in this way. If it is possible, find the minimum number of digits that must be erased to make such a number.The input consists of a single integer N.

<b>Constraints</b>
1&le;N&le;10^18
 
None of the digits in N is 0.If it is impossible to make a multiple of 3, print -1; otherwise, print the minimum number of digits that must be erased to make such a number.<b>Sample Input 1</b> 
35
<b>Sample Output 1</b> 
1

<b>Sample Input 2</b> 
369
<b>Sample Output 2</b> 
0

<b>Sample Input 3</b> 
6227384
<b>Sample Output 3</b> 
1

<b>Sample Input 4</b> 
11
<b>Sample Output 4</b> 
-1, I have written this Solution Code: #include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
int main() {
	int64_t n;
	scanf("%" SCNd64, &n);
	
	int cnt[3] = { 0 };
	while (n) {
		cnt[n % 10 % 3]++;
		n /= 10;
	}
	int cur = (cnt[1] + 2 * cnt[2]) % 3;
	int k = cnt[0] + cnt[1] + cnt[2];
	int res;
	if (!cur) res = 0;
	else if (cur == 1) {
		if (cnt[1]) {
			if (k == 1) res = -1;
			else res = 1;
		} else {
			if (k == 2) res = -1;
			else res = 2;
		}
	} else {
		if (cnt[2]) {
			if (k == 1) res = -1;
			else res = 1;
		} else {
			if (k == 2) res = -1;
			else res = 2;
		}
	}
	printf("%d\n", res);
	
	return 0;
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?