Cod sursa(job #470709)

Utilizator mihai995mihai995 mihai995 Data 15 iulie 2010 12:57:58
Problema Tablete Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
using namespace std;

int v[1<<10][1<<10],n,k;

ifstream in("tablete.in");
ofstream out("tablete.out");

void print()
{
	for (int i=1;i<=n;i++)
	{
		for (int j=1;j<=n;j++)
			out<<v[i][j]<<" ";
		out<<"\n";
	}
}

bool bs(int x)
{
	int i,step=1<<9;
	for (i=0;step;step>>=1)
		if (i+step<=n && v[i+step][k]<=x)
			i+=step;
	return v[i][k]==x;
}

int main()
{
	int i,j,next=1;
	in>>n>>k;
	for (i=1;i<=n;i++)
		v[i][k]=(k*(i-1)+k+1)/2*2;
	for (i=1;i<=n;i++)
		for (j=1;j<k;j++,next++)
		{
			next+=bs(next);
			v[i][j]=next;
		}
	for (i=1;i<=n;i++)
		for (j=k+1;j<=n;j++,next++)
		{
			next+=bs(next);
			v[i][j]=next;
		}			
	print();
	return 0;
}