| 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 |
