Rezultati

Up. imeNalogaJezikRezultatČas oddaje
luftkanali-2019 Tlakovanje C 0/100Prekoračen čas (TLE) 09. maj '19 @ 20:15

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 0/5 1,500 MiB 0,000 s Napačen odgovor
#2 [več] 0/5 1,527 MiB 0,000 s Napačen odgovor
#3 [več] 0/6 1,496 MiB 0,005 s Napačen odgovor
#4 [več] 0/6 1,500 MiB 0,005 s Napačen odgovor
#5 [več] 0/6 1,504 MiB 0,000 s Napačen odgovor
#6 [več] 0/6 1,496 MiB 0,005 s Napačen odgovor
#7 [več] 0/6 1,344 MiB 3,032 s Prekoračen čas
#8 [več] 0/6 1,344 MiB 3,038 s Prekoračen čas
#9 [več] 0/6 1,258 MiB 3,032 s Prekoračen čas
#10 [več] 0/6 1,336 MiB 3,032 s Prekoračen čas
#11 [več] 0/6 1,258 MiB 3,032 s Prekoračen čas
#12 [več] 0/6 1,340 MiB 3,032 s Prekoračen čas
#13 [več] 0/6 1,449 MiB 3,032 s Prekoračen čas
#14 [več] 6/6 1,375 MiB 0,000 s OK
#15 [več] 0/6 1,250 MiB 3,026 s Prekoračen čas
#16 [več] 0/6 1,340 MiB 3,026 s Prekoračen čas
#17 [več] 0/6 1,539 MiB 0,011 s Napačen odgovor

Ocenjevani program (tiskanje.c):
#include<stdio.h>
#include<string.h>

int tabela[102][102];
int n, m, plus[3][3][2]={
	{{0, 0}, {-1, 0}, {0, -1}},
	{{0, 0}, {-1, 0}, {-1, -1}},
	{{0, 0}, {-1, -1}, {0, -1}}
};

void print(){
	int i, j;
	for(i=0;i<=n+1;++i){
		for(j=0;j<=m+1;++j){
			printf("%3d ", tabela[i][j]);
		}
		putchar('\n');
	}
}

int dfs(int w, int h, int steps){
	int i, j, ok;
	for(i=0;i<3;++i){
		ok=1;
		for(j=0;j<3;++j){
			if(tabela[w+plus[i][j][0]][h+plus[i][j][1]]!=0){
				ok=0;
				break;
			}
		}
		if(ok){
			for(j=0;j<3;++j)
				tabela[w+plus[i][j][0]][h+plus[i][j][1]]=steps;
			ok=h;
			for(j=w;tabela[j][ok]!=0;--j){
				if(j==0){
					j=n+1;
					ok--;
				}
			}
			if(j==1 && ok==1) return 1;
			if(dfs(j, ok, steps+1)) return 1;
			for(j=0;j<3;++j)
				tabela[w+plus[i][j][0]][h+plus[i][j][1]]=0;
		}
	}
	return 0;
}

int main(){
	int T, i, j;
	scanf("%d", &T);
	while(T--){
		scanf("%d %d", &n, &m);
		memset(tabela, 0, sizeof(tabela));
		for(i=0;i<=n+1;++i){
			tabela[i][0]=-1;
			tabela[i][m+1]=-1;
		}
		for(j=0;j<=m+1;++j){
			tabela[0][j]=-1;
			tabela[n+1][j]=-1;
		}
		if((n*m-1)%3!=0){
			printf("NE GRE IN NE GRE!\n");
			continue;
		}
		if(dfs(n, m, 1)){
			print();
		}
		else{
			printf("NE GRE IN NE GRE!\n");
		}
	}
	return 0;
}