Task: | Trojke |
Sender: | henrikaalto |
Submission time: | 2019-07-24 14:38:19 +0300 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 100 |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.01 s | details |
#2 | ACCEPTED | 0.01 s | details |
#3 | ACCEPTED | 0.01 s | details |
#4 | ACCEPTED | 0.01 s | details |
#5 | ACCEPTED | 0.01 s | details |
#6 | ACCEPTED | 0.01 s | details |
#7 | ACCEPTED | 0.01 s | details |
#8 | ACCEPTED | 0.01 s | details |
#9 | ACCEPTED | 0.01 s | details |
#10 | ACCEPTED | 0.01 s | details |
Code
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<string> v(n); for (int i = 0; i < n; ++i) { cin >> v[i]; } vector<vector<int>> s; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (v[i][j] == '.') continue; for (int it = 0; it < n; ++it) { for (int jt = 0; jt < n; ++jt) { if (v[it][jt] == '.') continue; if (it == i && jt == j) continue; pair<int,int> A = {i, j}; pair<int,int> B = {it, jt}; if (B < A) swap(A, B); int ix = B.first - A.first; int jx = B.second - A.second; int u = abs(__gcd(ix, jx)); ix /= u; jx /= u; for (int x = 1; x < n; ++x) { int ih = B.first + ix * x; int jh = B.second + jx * x; if (ih < 0 || ih >= n) continue; if (jh < 0 || jh >= n) continue; if (v[ih][jh] == '.') continue; vector<int> lol = {v[i][j], v[it][jt], v[ih][jh]}; sort(lol.begin(), lol.end()); // for (auto u : lol) cout << u << " ";cout<<"\n\n"; s.push_back(lol); } } } } } sort(s.begin(), s.end()); s.resize(unique(s.begin(), s.end()) - s.begin()); cout << s.size() << "\n"; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
3
AB. .CD ..E |
correct output |
---|
1 |
user output |
---|
1 |
Test 2
Verdict: ACCEPTED
input |
---|
5
A.G.H ..... B.C.I ..... ... |
correct output |
---|
8 |
user output |
---|
8 |
Test 3
Verdict: ACCEPTED
input |
---|
8
..HK.... .....C.. .......J E...B... ... |
correct output |
---|
10 |
user output |
---|
10 |
Test 4
Verdict: ACCEPTED
input |
---|
10
.......... ....WZ.... ......I... ...A...... ... |
correct output |
---|
7 |
user output |
---|
7 |
Test 5
Verdict: ACCEPTED
input |
---|
30
................................. |
correct output |
---|
14 |
user output |
---|
14 |
Test 6
Verdict: ACCEPTED
input |
---|
50
................................. |
correct output |
---|
6 |
user output |
---|
6 |
Test 7
Verdict: ACCEPTED
input |
---|
80
................................. |
correct output |
---|
97 |
user output |
---|
97 |
Test 8
Verdict: ACCEPTED
input |
---|
90
................................. |
correct output |
---|
81 |
user output |
---|
81 |
Test 9
Verdict: ACCEPTED
input |
---|
99
................................. |
correct output |
---|
148 |
user output |
---|
148 |
Test 10
Verdict: ACCEPTED
input |
---|
100
................................. |
correct output |
---|
132 |
user output |
---|
132 |