#include <iostream>

int main(){
	int x=10;
	int y=10;
	int matrix[x][y];
	for (int i = 0; i<x; i++) {
		for (int j =0; j<y; j++){ // wollte nur sichergehen dass kein Ergebnis durch unbestimmte SpeicherplÃ¤tze gefÃ¤lscht wird
			matrix[i][j]=0;
			}
		}
		
	int cntx,cnty; // 2 Hilfsvariablen zum hoch bzw. runterzÃ¤hlen
	int i=1;
	cntx=0;
	cnty=0;
	for(int max=0;max<x;max++){ // da die erste Zahl [0][0] die 2=[0][1] 3.=[01][0]... [0->max][max->0] 
		cnty=max; // sozusagen y=[max->0] da muss ich ja am anfang auf max sezten
		cntx=0;
		while(cnty>=0){
		matrix[cntx][cnty]=i;
		i++;
		cntx++;
		cnty--;
		}
	}
	//unterer Teil
	i=x*x;
	cntx=x-1;
	cnty=x-1;
	for(int min=x-1;min>0;min--){ // da die erste Zahl [0][0] die 2=[0][1] 3.=[01][0]... [0->max][max->0] 
		cnty=min; // sozusagen y=[max->0] da muss ich ja am anfang auf max sezten
		cntx=x-1;
		while(cnty<=x-1){
		matrix[cntx][cnty]=i;
		i--;
		cntx--;
		cnty++;
		}
	}
	
	//Ausgabe
	for (int i = 0; i <x; i++) {
		for (int j =0; j<y; j++){
			std::cout<<matrix[i][j]<<"\t";
			}
			std::cout<<"\n";
			}
}
