fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = 1e3+5;
  5. int a[N][N], b[N];
  6.  
  7. int check(int n){
  8. // CHECK HANG
  9. for(int i = 1; i <= n;i++){
  10. bool flag = false;
  11. for(int j = 1; j <= n;j++){
  12. if (a[i][j] && flag){
  13. return 0;
  14. }else if (a[i][j]){
  15. flag = true;
  16. }
  17. }
  18. }
  19. for(int j = 1; j <= n;j++){
  20. bool flag = false;
  21. for(int i = 1; i <= n;i++){
  22. if (a[i][j] && flag){
  23. return 0;
  24. }else if (a[i][j]){
  25. flag = true;
  26. }
  27. }
  28. }
  29. return 1;
  30. }
  31.  
  32. int f(int n){
  33. for(int i = 1; i <= n;i++){
  34. if (a[n][i]) return i;
  35. }
  36. }
  37.  
  38. int main(){
  39. int n; cin >> n;
  40. for(int i = 1; i <= n;i++){
  41. for(int j = 1; j <= n;j++){
  42. cin >> a[i][j];
  43. }
  44. }
  45. for(int i = 1; i <= n;i++) cin >> b[i];
  46. if (!check(n)){
  47. cout << "KHONG PHAI MA TRAN HOAN VI";
  48. return 0;
  49. }
  50. for(int i = 1; i <= n;i++){
  51. int x = f(i);
  52. cout << b[x] << " ";
  53. }
  54. }
  55.  
Success #stdin #stdout 0.01s 5272KB
stdin
3
0 1 0
0 0 1
1 0 0
10 20 30
stdout
20 30 10