Editorial Semana 09 - Matrizes
Lista de Exercícios 06
URI 1181 - Linha na Matriz
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
double matriz[12][12],soma=0;
char o;
scanf("%d",&n);
scanf(" %c",&o);
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
double x;
scanf("%lf",&x);
if(i==n){
soma=soma+x;
}
}
}
if(o=='S'){
printf("%.1lf\n",soma);
}
else if(o=='M'){
printf("%.1lf\n",(soma/12));
}
return 0;
}
URI 1183 - Acima da Diagonal Principal
#include <bits/stdc++.h>
#include <string>
using namespace std;
int main(){
char v;
double matriz[12][12],s=0;
scanf("%c",&v);
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
double valor;
scanf("%lf",&valor);
matriz[i][j]=valor;
}
}
for(int i=0;i<12;i++){
int p=i;
p++;
while(p<12){
s=s+matriz[i][p];
p++;
}
}
if (v=='M'){
printf("%.1lf\n",s/66);
}
else if (v=='S'){
printf("%.1lf\n",s);
}
return 0;
}
URI 1190 - Área Direita
#include <bits/stdc++.h>
using namespace std;
int main(){
char escolha;
double v, soma=0;
cin >> escolha;
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
cin >> v;
if(i+j>11 and j>i){
soma+=v;
}
}
}
cout.precision(1);
cout.setf(ios::fixed);
if(escolha=='S'){
cout << soma << endl;
} else if(escolha=='M'){
cout << soma/30 << endl;
}
return 0;
}
URI 1435 - Matriz Quadrada I
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, i, j, k;
while (true) {
scanf("%d", &n);
if (n == 0)
break;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
k = i + 1;
if (j + 1 < k)
k = j + 1;
if (n - i < k)
k = n - i;
if (n - j < k)
k = n - j;
if (j)
printf(" ");
printf("%3d", k);
}
printf("\n");
}
printf("\n");
}
return 0;
}
URI 1534 - Matriz 123
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(scanf("%d", &n) != EOF){
int matriz[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(i==j){
matriz[i][j] = 1;
}
if(i+j==n-1){
matriz[i][j] = 2;
}
if(i!=j && (i+j)!= (n-1)){
matriz[i][j] = 3;
}
}
}
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(j==n-1){
printf("%d\n", matriz[i][j]);
}
else{
printf("%d", matriz[i][j]);
}
}
}
}
return 0;
}
URI 2552 - PãodeQueijoSweeper
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m;
while(cin >> n){
cin >> m;
int tab[n][m], fim[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) cin >> tab[i][j];
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
int paes = 0;
if(tab[i][j]==1) paes = 9;
else{
if(i==0){
if(tab[i+1][j]==1) paes++;
} else if(i==n-1){
if(tab[i-1][j]==1) paes++;
} else{
if(tab[i+1][j]==1) paes++;
if(tab[i-1][j]==1) paes++;
}
if(j==0){
if(tab[i][j+1]==1) paes++;
} else if(j==m-1){
if(tab[i][j-1]==1) paes++;
} else{
if(tab[i][j+1]==1) paes++;
if(tab[i][j-1]==1) paes++;
}
}
fim[i][j]=paes;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) cout << fim[i][j];
cout << endl;
}
}
return 0;
}
URI 1478 - Matriz Quadrada II
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
while(n!=0){
int matriz[n][n]; //0...(n-1)
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(i==j){
matriz[i][j]=1;
}
else if(i<j){
matriz[i][j]=j-i+1;
}
else if(i>j){
matriz[i][j]=i-j+1;
}
}
}
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(j==0){
printf("%3d",matriz[i][j]);
}
else{
printf(" %3d",matriz[i][j]);
}
}
cout<<endl;
}
cout<<endl;
scanf("%d",&n);
}
return 0;
}
URI 1557 - Matriz Quadrada III
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
int main(){
int n;
while(true){
cin >> n;
if(n==0){
break;
}
int c=0, m=pow(2.0,2*n-2);
string maior=to_string(m);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
int valor = pow(2, j+c);
int tam = to_string(valor).size();
for(int k=0;k<maior.size()-tam;k++){
cout << " ";
}
cout << valor;
if(j==n-1){
cout << endl;
} else{
cout << " ";
}
}
c++;
}
cout << endl;
}
return 0;
}
URI 1827 - Matriz Quadrada IV
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin >> n){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(j==(n-1)/2 and i==(n-1)/2){
cout << 4;
} else if((i>=n/3 and j>=n/3) and (i<n-n/3 and j<n-n/3)){
cout << 1;
}else if(i==j){
cout << 2;
} else if(j==n-1-i){
cout << 3;
} else{
cout << 0;
}
if(j==n-1){
cout << endl;
}
}
}
cout << endl;
}
return 0;
}
URI 1185 - Acima da Diagonal Secundária
#include <bits/stdc++.h>
#include <string>
using namespace std;
int main(){
char v;
double matriz[12][12],s=0;
scanf("%c",&v);
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
double valor;
scanf("%lf",&valor);
if(i+j<11){
s=s+valor;
}
}
}
if (v=='M'){
printf("%.1lf\n",s/66);
}
else if (v=='S'){
printf("%.1lf\n",s);
}
return 0;
}
URI 1186 - Abaixo da Diagonal Secundária
#include <bits/stdc++.h>
using namespace std;
int main(){
char escolha;
double v, soma=0;
cin >> escolha;
for(int i=0;i<12;i++){
for(int j=0;j<12;j++){
cin >> v;
if(i+j>11){
soma+=v;
}
}
}
cout.precision(1);
cout.setf(ios::fixed);
if(escolha=='S'){
cout << soma << endl;
} else if(escolha=='M'){
cout << soma/66 << endl;
}
return 0;
}
Desafio - Iu-Di-Oh!
URI 2542 - Iu-Di-Oh!
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m, l;
while(cin >> n){
cin >> m >> l;
long long marcos[m][n], leo[l][n];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++) cin >> marcos[i][j];
}
for(int i=0;i<l;i++){
for(int j=0;j<n;j++) cin >> leo[i][j];
}
int cm, cl, a;
cin >> cm >> cl >> a;
if(marcos[cm-1][a-1]>leo[cl-1][a-1]) cout << "Marcos" << endl;
else if(marcos[cm-1][a-1]<leo[cl-1][a-1]) cout << "Leonardo" << endl;
else cout << "Empate" << endl;
}
return 0;
}