Task: | Euclidean Geometry |
Sender: | Puhi~ |
Submission time: | 2018-05-26 15:59:55 +0300 |
Language: | C++ |
Status: | READY |
Result: | RUNTIME ERROR |
test | verdict | time | |
---|---|---|---|
#1 | RUNTIME ERROR | 0.07 s | details |
#2 | WRONG ANSWER | 0.59 s | details |
#3 | WRONG ANSWER | 0.64 s | details |
#4 | RUNTIME ERROR | 0.34 s | details |
#5 | RUNTIME ERROR | 0.29 s | details |
#6 | WRONG ANSWER | 0.63 s | details |
#7 | WRONG ANSWER | 0.62 s | details |
#8 | RUNTIME ERROR | 0.30 s | details |
Compiler report
input/code.cpp: In function 'void solvaa()': input/code.cpp:74:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < normals.size(); i++) { ~~^~~~~~~~~~~~~~~~ input/code.cpp:85:19: warning: division by zero [-Wdiv-by-zero] cout << 1 / 0; ~~^~~
Code
#include <iostream>#include <vector>#include <cmath>using namespace std;bool image[110][110];bool is_edge(int ox, int oy) {if (!image[ox][oy]) {return false;}for (int x = -1; x <= 1; x++) {for (int y = -1; y <= 1; y++) {if (!image[ox+x][oy+y]) { return true; }}}return false;}float normal(int ox, int oy) {float dx = 0;float dy = 0;for (int x = -4; x <= 4; x++) {for (int y = -4; y <= 4; y++) {if (x == 0 && y == 0) {continue;}if (image[ox+x][oy+y]) {float l = sqrt(x*x + y*y);if (l > 4) { continue; }float nx = x / l;float ny = y / l;dx += nx;dy += ny;}}}//cout << dy << ' ' << dx << endl;//cout << dy << ' ' << dx << ' ' << atan2(dy, dx) << endl;return atan2(dy, dx);}void solvaa() {for (int x = 0; x < 100; x++) {for (int y = 0; y < 100; y++) {char tmp;cin >> tmp;image[x+5][y+5] = ('1' == tmp);}}vector<float> normals;for (int x = 0; x < 100; x++) {for (int y = 0; y < 100; y++) {if (is_edge(x+5, y+5)) {normals.push_back(normal(x+5,y+5));}}}int sivut = 0;float pi = 3.141592;float vs = 0.01;for (float dir = -3*pi; dir < 3*pi; dir += vs/10) {int count = 0;for (int i = 0; i < normals.size(); i++) {if(abs(dir-normals[i]) < vs/2) { count++; }}if (count > 10) {sivut++;dir += 0.4;}}if(sivut > 4){cout << 1 / 0;}/*if(sivut < 3){cout << *(int*)0;}*/cout << sivut << endl;}int main() {int t;cin >> t;for (int i = 0; i < t; i++) {solvaa();}}
Test details
Test 1
Verdict: RUNTIME ERROR
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 3 3 3 4 ... |
user output |
---|
2 3 1 3 4 ... |
Test 2
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 4 4 4 3 ... |
user output |
---|
1 3 4 4 2 ... Truncated |
Test 3
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 3 3 3 4 ... |
user output |
---|
3 3 3 3 4 ... Truncated |
Test 4
Verdict: RUNTIME ERROR
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 3 3 4 3 ... |
user output |
---|
3 3 3 3 3 ... Truncated |
Test 5
Verdict: RUNTIME ERROR
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 4 3 3 4 ... |
user output |
---|
3 4 0 3 4 ... |
Test 6
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
4 3 4 4 4 ... |
user output |
---|
4 3 3 4 4 ... Truncated |
Test 7
Verdict: WRONG ANSWER
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
4 4 3 3 3 ... |
user output |
---|
4 4 3 3 3 ... Truncated |
Test 8
Verdict: RUNTIME ERROR
input |
---|
100 000000000000000000000000000000... |
correct output |
---|
3 3 3 3 3 ... |
user output |
---|
3 3 3 3 3 ... Truncated |