CSES - Putka Open 2020 – 1/5 - Results
Submission details
Task:Lista
Sender:Grez
Submission time:2020-09-06 12:46:32 +0300
Language:C++17
Status:COMPILE ERROR

Compiler report

input/code.cpp:11:9: error: expected ':' before 'Solver'
  public Solver(int amount) {
         ^~~~~~
input/code.cpp:40:9: error: expected ':' before 'void'
  public void Solve()
         ^~~~
input/code.cpp:62:2: error: expected ';' after class definition
 }
  ^
  ;
input/code.cpp: In member function 'void Solver::Solve()':
input/code.cpp:59:4: error: 'count' was not declared in this scope
    count << endl;
    ^~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:66:17: error: expected ';' before '.' token
  new Solver(amo).Solve();
                 ^

Code

#include <iostream>

using namespace std;

class Solver
{

	bool* sieve;
	int* ans;
	int amo;
	public Solver(int amount) {
		amo = amount;
		sieve = new bool(amo);
		ans = new int(amo);
	}
	~Solver() {
		delete sieve;
		delete ans;
	}
	void swap(int a, int b)
	{
		if (a == b) return;
		int t = ans[a];
		ans[a] = ans[b];
		ans[b] = t;
	}
	bool recurse(int pos)
	{
		for (int other = pos; other >= 0; other -= 2)
		{
			if (sieve[(ans[other] + ans[pos + 1]) / 2]) continue;
			if (pos == 0) return true;
			swap(pos, other);
			if (recurse(pos - 1)) return true;
			swap(pos, other); //swap back
		}
		return false;
	}

	public void Solve()
	{
		int maxPrime = amo * 2;
		for (int mul = 3; (mul * mul) < maxPrime; mul += 2)
		{
			for (int hole = mul / 2 + mul; hole < amo; hole += mul)
			{
				sieve[hole] = true;
			}
		}


		for (int i = 0; i < amo; i++) { ans[i] = i + 1; }

		if (recurse(amo - 2))
		{
			for (int i=0; i<amo; i++) {
				cout << ans[i];
			}
			count << endl;
		}
	}
}
int main() {
    int amo;
    cin >> amo;
	new Solver(amo).Solve();
}