Questions exercices d'accès de base arrière en forme
Les contraintes de ressources
Date limite: 1.0s mémoire Limite: 512.0MB
description du problème
L'accès est en forme de méandre le long de l'accès latéral de la matrice, si la direction actuelle a de nombreux souhaitable ou décoller, puis 90 degrés à gauche. Un démarrage à gauche coin de la matrice, la direction vers le bas.
Format d'entrée
La première ligne d'entrée est un nombre entier positif non supérieur à deux de 200 m, n, désigne la matrice de rangées et de colonnes. Ensuite, chaque rangée de m rangées de n est un nombre entier, désigne la matrice.
Format de sortie
Seule la ligne de sortie, un nombre total de mn, pris comme un nombre méandres matrice d'entrée des résultats obtenus. Entre le nombre séparé par un espace, à la fin de la ligne n'ont pas d'espaces supplémentaires.
entrée d'échantillon
3 3
1 2 3
4 5 6
7 8 9
Exemple de sortie
1 4 7 8 9 6 3 2 5
entrée d'échantillon
3 2
1 2
3 4
5 6
Exemple de sortie
1 3 5 6 4 2
Python version
m, n = map(int, input().split())
a = []
ans = []
for _ in range(m):
a.append(list(map(int, input().split())))
while a:
# down
for i in range(len(a)):
ans += [a[i].pop(0)] if a[i] else []
# right
ans += a.pop() if a else []
# top
for i in range(len(a) - 1, -1, -1):
ans += [a[i].pop()] if a[i] else []
# left
ans += a.pop(0)[::-1] if a else []
print(*ans)
c ++ version
#include <iostream>
#include <memory.h>
using namespace std;
int main() {
int m, n;
cin >> m >> n;
int a[201][201];
memset(a, -1, sizeof(a));
int i = 0, j = 0;
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
cin >> a[i][j];
i = 0, j = 0;
int total = 0;
while(total < m * n) {
while(i <= m-1 && a[i][j] != -1) {//down
cout << a[i][j] << " ";
a[i][j] = -1;
i++;
total++;
}
i--;
j++;
while(j <= n-1 && a[i][j] != -1) {//right
cout << a[i][j] << " ";
a[i][j] = -1;
j++;
total++;
}
j--;
i--;
while(i >= 0 && a[i][j] != -1) {//up
cout << a[i][j] << " ";
a[i][j] = -1;
i--;
total++;
}
i++;
j--;
while(j >= 0 && a[i][j] != -1) {//left
cout << a[i][j] << " ";
a[i][j] = -1;
j--;
total++;
}
j++;
i++;
}
return 0;
}