Task: | Euclidean Geometry |
Sender: | Karhukopla |
Submission time: | 2018-05-26 13:28:10 +0300 |
Language: | C++ |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | WRONG ANSWER | 0.07 s | details |
#2 | WRONG ANSWER | 0.07 s | details |
#3 | WRONG ANSWER | 0.07 s | details |
#4 | WRONG ANSWER | 0.08 s | details |
#5 | WRONG ANSWER | 0.07 s | details |
#6 | WRONG ANSWER | 0.09 s | details |
#7 | WRONG ANSWER | 0.07 s | details |
#8 | WRONG ANSWER | 0.06 s | details |
Compiler report
input/code.cpp: In function 'int solve()': input/code.cpp:38:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0; i<q.size(); ++i){ ~^~~~~~~~~ input/code.cpp:40:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j=i+1; j<q.size(); ++j){ ~^~~~~~~~~
Code
#include <bits/stdc++.h>#define ll long long#define lll __int128#define pii pair<int, int>#define M 1000000007#define N 101#define PB push_back#define F first#define S secondusing namespace std;char t[N][N];int solve(){int x1=N, y1=N, x2=0, y2=0;for(int i=0; i<100; ++i) {for(int j=0; j<100; ++j) {cin >> t[i][j];if(t[i][j] == '1') {x1=min(x1, i);x2=max(x2, i);y1=min(y1, j);y2=max(y2, j);}}}vector<pair<int,int>> q;for(int i=x1; i<=x2; ++i){if(t[i][y1]=='1' && (t[i-1][y1]=='0'||t[i+1][y1] == '0')) q.PB({i, y1});if(t[i][y2]=='1' && (t[i-1][y2]=='0'||t[i+1][y2] == '0')) q.PB({i, y2});}for(int i=y1; i<=y2; ++i){if(t[x1][i]=='1' && (t[x1][i-1]=='0'||t[x1][i+1] == '0')) q.PB({x1, i});if(t[x2][i]=='1' && (t[x2][i-1]=='0'||t[x2][i+1] == '0')) q.PB({x2, i});}vector<pair<int,int>> sivut;vector<int> z(10);for(int i=0; i<q.size(); ++i){if(z[i]) continue;for(int j=i+1; j<q.size(); ++j){int a = q[i].F - q[j].F, b = q[i].S - q[j].S;if(a*a+b*b < 100) {z[j] = 1;continue;}sivut.PB({i, j});}}if(sivut.size() > 3) return 4;for(pair<int,int> p : sivut){int a = p.F, b = p.S;int x = (q[a].F + q[b].F)/2, y = (q[a].S + q[b].S)/2;vector<int> w(2);for(int i=x-3; i<=x+3; ++i){for(int j=y-3; j<=y+3; ++j){if(t[i][j] == '1') w[1] = 1;else w[2] = 1;}}if(w[1] + w[2] == 1){return 4;}}if(sivut.size() == 3) return 3;pair<int,int> pist = {x1, y2};int dist = 0;for(int i=x1; i<=x2; ++i){for(int j=0; j<100; ++j){if(t[i][j] == '0') continue;int d = abs((x1-i)*(y2-j) - (x2-i)*(y1-j));if(d > dist){dist = d;pist = {i, j};}}}int a = sivut[0].F, b = sivut[0].S;int x = (q[a].F + pist.F)/2, y = (q[a].S + pist.S)/2;vector<int> w(2);for(int i=x-3; i<=x+3; ++i){for(int j=y-3; j<=y+3; ++j){if(t[i][j] == '1') w[1] = 1;else w[2] = 1;}}if(w[1] + w[2] == 1){return 4;}x = (q[b].F + pist.F)/2, y = (q[b].S + pist.S)/2;w[0] = w[1] = 0;for(int i=x-3; i<=x+3; ++i){for(int j=y-3; j<=y+3; ++j){if(t[i][j] == '1') w[1] = 1;else w[2] = 1;}}if(w[1] + w[2] == 1){return 4;}return 3;}int main () {ll t; cin >> t;while(t--) cout << solve() << "\n";}/**AAUYBABTY*/
Test details
Test 1
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 3 3 3 4 ... |
user output |
---|
4 4 4 4 4 ... Truncated |
Test 2
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 4 4 4 3 ... |
user output |
---|
4 4 4 4 4 ... Truncated |
Test 3
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 3 3 3 4 ... |
user output |
---|
4 4 4 4 4 ... Truncated |
Test 4
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 3 3 4 3 ... |
user output |
---|
4 4 4 4 4 ... Truncated |
Test 5
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 4 3 3 4 ... |
user output |
---|
4 4 4 4 4 ... Truncated |
Test 6
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
4 3 4 4 4 ... |
user output |
---|
4 4 4 4 4 ... Truncated |
Test 7
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
4 4 3 3 3 ... |
user output |
---|
4 4 4 4 4 ... Truncated |
Test 8
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 3 3 3 3 ... |
user output |
---|
4 4 4 4 4 ... Truncated |