CSES - COCI 2006/2007 #3 - Results
Submission details
Task:Trojke
Sender:henrikaalto
Submission time:2019-07-24 14:38:19 +0300
Language:C++17
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails
#4ACCEPTED0.01 sdetails
#5ACCEPTED0.01 sdetails
#6ACCEPTED0.01 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.01 sdetails
#9ACCEPTED0.01 sdetails
#10ACCEPTED0.01 sdetails

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