| Task: | Spiraali |
| Sender: | Emunemu |
| Submission time: | 2021-10-05 18:22:49 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 15 |
| #2 | ACCEPTED | 20 |
| #3 | ACCEPTED | 65 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1 | details |
| #2 | ACCEPTED | 0.01 s | 2 | details |
| #3 | ACCEPTED | 0.01 s | 3 | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:106:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (ll i = 0; i < v.size();i++) {
~~^~~~~~~~~~Code
#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
bool Uloimmalla(int x, int y, int nt) {
if (x == 1 || y == 1 ||x==nt||y==nt) {
return true;
}
return false;
}
ll Kerros(ll x, ll y, ll nt) {
if (x > nt/2.0) {
x = nt - x + 1;
} else {
x = 0 + x;
}
if (y > nt/2.0) {
y = nt - y + 1;
} else {
y = 0 + y;
}
if (x>y) {
return y;
} else {
return x;
}
}
int main()
{
ll n,nt,t,x,y;
cin >> n >> t;
vector<ll> v;
for (ll i = 0; i < t;i++) {
cin >> y >> x;
nt = n;
ll perus;
ll tulo;
ll kerrottava;
ll ans;
ll kerros = Kerros(x,y,nt);
tulo = n - (kerros-1);
kerrottava = 4 * (kerros-1);
perus = tulo * kerrottava;
nt -= 2*(kerros-1);
x -= kerros-1;
y -= kerros-1;
ll tulo2 = n - kerros;
ll kerrottava2 = 4 * kerros;
ll perus2 = tulo2 * kerrottava2;
if (x==1) {
ans = perus + y;
} else if (y==nt) {
ans = perus + nt + (x-1);
} else if (y==1) {
ans = perus2 - x + 2;
} else if (x==nt) {
ans = perus2 - nt + 2 - y + 1;
}
v.push_back(ans);
x = 0;
y = 0;
/*while(true) {
if (Uloimmalla(x,y,nt)) {
if (x==1) {
ans = perus + y;
} else if (y==nt) {
ans = perus + nt + (x-1);
} else if (y==1) {
ans = (tulo * kerrottava) - x + 2;
} else if (x==nt) {
ans = (tulo * kerrottava) - nt + 2 - y + 1;
}
}
if (ans != 0) {
v.push_back(ans);
x = 0;
y = 0;
nt = n;
break;
}
perus = tulo * kerrottava;
tulo -= 1;
kerrottava += 4;
nt -= 2;
y -= 1;
x -= 1;
}*/
}
for (ll i = 0; i < v.size();i++) {
cout << v[i] << "\n";
}
return 0;
}
Test details
Test 1
Group: 1
Verdict: ACCEPTED
| 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: ACCEPTED
| 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: ACCEPTED
| input |
|---|
| 1000000000 1000 177757853 827347032 409613589 419171337 739269360 256524697 328695530 896842209 ... |
| correct output |
|---|
| 571375684522141210 967321186816598569 762879105851175000 370065046779516790 936897883750373771 ... |
| user output |
|---|
| 571375684522141210 967321186816598569 762879105851175000 370065046779516790 93689788375037 ... Truncated |
