int main() { int a[50][2]; int n; int k1=0; int k2=0; int k3=0; int k4=0; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i][0] >> a[i][1]; } for (int i = 0; i < n; i++) { if (a[i][1]>0) if (a[i][0]>0) k1++; else k2++; else if (a[i][0]>0) k4++; else k3++; } if ((k2>=3)or(k2==2)and(k1>3)or(k3>5)or(k4>9)) cout << "Clock is broken" << "\n"; else cout << k2 << k1 << ":" << k3 << k4 << "\n"; return 0; }
Дорога, соединяющая города i и j, даст единицу в две позиции - (i, j) и (j, i). Тогда общее количество единиц в матрице равно удвоенному числу дорог. Отсюда и простое решение - считать N^2 чисел, подсчитать количество единиц и поделить его на 2. Можно считать и сумму - от этого ничего не изменится.
#include <iostream> int main() { int n = 0, sum = 0, temp = 0; std :: cin >> n; for (int i = 0; i < n * n; i++) { std :: cin >> temp; sum += temp; } std :: cout << sum / 2; return 0; }
using namespace std;
int main() {
int a[50][2];
int n;
int k1=0;
int k2=0;
int k3=0;
int k4=0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i][0] >> a[i][1];
}
for (int i = 0; i < n; i++) {
if (a[i][1]>0)
if (a[i][0]>0) k1++; else k2++;
else if (a[i][0]>0) k4++; else k3++;
}
if ((k2>=3)or(k2==2)and(k1>3)or(k3>5)or(k4>9))
cout << "Clock is broken" << "\n";
else cout << k2 << k1 << ":" << k3 << k4 << "\n";
return 0;
}
Пример:
10
-1 1
1 1
1 2
-1 -1
-1 -2
-1 -3
1 -1
1 -2
1 -3
1 -4
12:34
#include <iostream>
int main() {
int n = 0, sum = 0, temp = 0;
std :: cin >> n;
for (int i = 0; i < n * n; i++) {
std :: cin >> temp;
sum += temp;
}
std :: cout << sum / 2;
return 0;
}