Pagini recente » Cod sursa (job #2738668) | Cod sursa (job #2699045) | Cod sursa (job #1448686) | Cod sursa (job #1347595) | Cod sursa (job #231742)
Cod sursa(job #231742)
# include <iostream>
# include <fstream>
using namespace std;
struct matrice
{
int n;
int** matr;
matrice();
matrice(int n);
void print(ofstream out);
};
matrice::matrice()
{
n=0;
matr=NULL;
}
matrice::matrice(int n)
{
if(n<0) return;
matr=new int* [n];
for(int i=0; i<n; i++)
matr[i]=new int[n];
this->n=n;
}
void citeste(const char* filename, int &n, int &k)
{
ifstream in(filename);
in>>n>>k;
in.close();
}
void ciocolataaa(int n, int k, matrice &m)
{
if(n%2==0&&k%2==0)
{
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
m.matr[i][j]=i*n+(j+1);
}
else
{
bool *bagat=new bool[n*n];
for(int i=0; i<n*n; i++) bagat[i]=false;
for(int i=0; i<n; i++)
{
int i_bagat=0;
while(bagat[i_bagat]) i_bagat++;
for(int j=0; j<n; j++)
{
if(j==k-1)
{
while (((i_bagat+1)%2!=0)||(bagat[i_bagat])) i_bagat++;
m.matr[i][j]=i_bagat+1;
bagat[i_bagat]=true;
}
else
{
while(bagat[i_bagat]) i_bagat++;
m.matr[i][j]=i_bagat+1;
bagat[i_bagat]=true;
}
}
}
}
}
int main()
{
int n,k;
citeste("tablete.in", n, k);
if(n<2||k<2) return 0;
if(k>n) return 0;
matrice m(n);
ciocolataaa(n, k, m);
ofstream out("tablete.out");
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
out<<m.matr[i][j]<<' ';
out<<'\n';
}
out.close();
return 0;
}