Envío 1311
- Autor: Javier
- Fecha: 2020-10-20 00:39:41 UTC (Hace más de 2 años)
Caso # |
Resultado |
Tiempo |
Memoria |
#1 |

Correcto
|
0.005 s
|
1 KBi |
#2 |

Correcto
|
0.004 s
|
1 KBi |
#3 |

Correcto
|
0.005 s
|
1 KBi |
#4 |

Correcto
|
0.005 s
|
1 KBi |
#5 |

Correcto
|
0.004 s
|
1 KBi |
#6 |

Correcto
|
0.004 s
|
1 KBi |
#7 |

Correcto
|
0.005 s
|
1 KBi |
#8 |

Correcto
|
0.005 s
|
1 KBi |
#9 |

Correcto
|
0.004 s
|
1 KBi |
#10 |

Correcto
|
0.005 s
|
1 KBi |
#11 |

Correcto
|
0.003 s
|
1 KBi |
#12 |

Correcto
|
0.005 s
|
1 KBi |
#13 |

Correcto
|
0.005 s
|
1 KBi |
#14 |

Correcto
|
0.004 s
|
1 KBi |
#15 |

Correcto
|
0.004 s
|
1 KBi |
#16 |

Correcto
|
0.009 s
|
1 KBi |
#17 |

Correcto
|
0.006 s
|
1 KBi |
#18 |

Correcto
|
0.007 s
|
1 KBi |
#19 |

Correcto
|
0.006 s
|
1 KBi |
#20 |

Correcto
|
0.008 s
|
1 KBi |
Puntos totales: 100 / 100
Código
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
cin >> n;
long m[n][n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> m[i][j];
}
}
//initialize counters
int rows[n];
int cols[n];
int diagonal = 0, transverse = 0;
for (int i = 0; i < n; i++)
{
rows[i] = 0;
cols[i] = 0;
}
for (int r = 0; r < n; r++)
{
diagonal += m[r][r];
transverse += m[r][n-1-r];
for (int c = 0; c < n; c++)
{
int cell = m[r][c];
rows[r] = rows[r] + cell;
cols[c] = cols[c] + cell;
}
}
// validate
bool isMagic = diagonal == transverse;
for (int i = 0; isMagic and i < n; i++)
{
isMagic = diagonal == rows[i] and diagonal == cols[i];
}
if (isMagic)
{
cout << "Yes";
}
else
{
cout << "No";
}
cout << endl;
return 0;
}