Task: | Spiraali |
Sender: | Bliz |
Submission time: | 2021-10-05 20:36:39 +0300 |
Language: | C++ (C++11) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.01 s | 1 | details |
#2 | WRONG ANSWER | 0.01 s | 2 | details |
#3 | WRONG ANSWER | 0.01 s | 3 | details |
Code
#include <iostream> #include <cmath> using namespace std; struct Point { int x, y; }; void get_input(Point points[], int t) { int x, y; for (int i = 0; i < t; i++) { cin >> y >> x; points[i] = Point{x, y}; } } long long segment(int l, int c, int x, int y) { return l * l + (c * (l + 1) - 1) + x + y; } long long get_result(int n, Point point) { int m = (n >> 1); // n / 2 int x = point.x, y = point.y; int l; // Kerroksen sisäpuolelle jäävän palikan halkaisija long long r; // vastaus = n^2 - r; // r on ruudun numero, jos spiraali alkaisi keskeltä 0:lla. if (y <= m) { if (x <= m) { if (x > y) { l = 2 * (m - y); r = segment(l, 0, x, -y); } else { l = 2 * (m - x); r = segment(l, 4, -y, x); } } else { if (n - x >= y) { l = 2 * (m - y); r = segment(l, 0, x, -y); } else { l = 2 * (x - m - 1); r = segment(l, 2, y, -x); } } } else { if (x > m) { if (x < y) { l = 2 * (y - m - 1); r = segment(l, 2, -x, y); } else { l = 2 * (x - m - 1); r = segment(l, 2, y, -x); } } else { if (x > n - y) { l = 2 * (y - m - 1); r = segment(l, 2, -x, y); } else { l = 2 * (m - x); r = segment(l, 4, -y, x); } } } return n * n - r; } void get_results(long long results[], int n, Point points[], int t) { for (int i = 0; i < t; i++) results[i] = get_result(n, points[i]); } void print_results(long long results[], int t) { for (int i = 0; i < t; i++) cout << results[i] << "\n"; cout << "Done\n"; } int main() { int n, t; cin >> n >> t; Point points[t]; get_input(points, t); long long results[t]; get_results(results, n, points, t); print_results(results, t); }
Test details
Test 1
Group: 1
Verdict: WRONG ANSWER
input |
---|
10 100 1 1 1 2 1 3 1 4 ... |
correct output |
---|
1 36 35 34 33 ... |
user output |
---|
1 36 35 34 33 ... Truncated |
Test 2
Group: 2
Verdict: WRONG ANSWER
input |
---|
1000 1000 371 263 915 322 946 880 53 738 ... |
correct output |
---|
773533 312166 206053 200080 593922 ... |
user output |
---|
773533 312166 206053 200080 593922 ... Truncated |
Test 3
Group: 3
Verdict: WRONG ANSWER
input |
---|
1000000000 1000 177757853 827347032 409613589 419171337 739269360 256524697 328695530 896842209 ... |
correct output |
---|
571375684522141210 967321186816598569 762879105851175000 370065046779516790 936897883750373771 ... |
user output |
---|
-2596477414 -1947622871 -3240906664 152360822 -2956879477 ... Truncated |