Pagini recente » Monitorul de evaluare | Cod sursa (job #650791) | Borderou de evaluare (job #1510769) | Cod sursa (job #1148635) | Cod sursa (job #2559136)
#include <fstream>
using namespace std;
ifstream f("culori.in");
ofstream g("culori.out");
int x[200001], v[200001], n, c;
void afis()
{
for(int i = 1; i <= n; ++ i)
g << x[i] << " ";
}
bool valid(int k)
{
for(int i = 1; i <= k; ++ i)
for(int j = i + 1; j <= c - i + 1 && j <= k; ++ j)
if(x[j] == x[j - 1]) return 0;
return 1;
}
void back(int k)
{
for(int i = 1; i <= n; ++ i)
{
x[k] = v[i];
if(valid(k))
if(k == n)
{
afis();
break;
}
else back(k + 1);
}
}
int main()
{
f >> n >> c;
for(int i = 1; i <= n; ++ i)
f >> v[i];
back(1);
return 0;
}