CSES - Datatähti 2022 alku - Results
Submission details
Task:Spiraali
Sender:Matenstein
Submission time:2021-10-04 13:08:30 +0300
Language:C++17
Status:READY
Result:20
Feedback
groupverdictscore
#10
#2ACCEPTED20
#30
Test results
testverdicttimegroup
#10.01 s1details
#2ACCEPTED0.02 s2details
#30.01 s3details

Code

#include <iostream>
#include <vector>
using namespace std;

int main() 
{
    double n, t;
    vector<int>tests;
    
    cin >> n >> t;

    for (double a = 0; a < t; a++)
    {
        double x, y;
        cin >> y >> x;
        tests.push_back(x);
        tests.push_back(y);
    }
    vector<double>grid(n * n);
    
    int x = 0, y = 0, s = 2, step = n - 1, dir = 0; bool l = false;
    float v = 1;
    while (v <= n * n)
    {
        for (int z = 0; z <= s; z++)
        {
            for (int a = 0; a < step; a++)
            {
                grid[(long int)(y * n + x)] = v;
                v++;
                if (dir == 0)y++;
                if (dir == 1)x++;
                if (dir == 2)y--;
                if (dir == 3)x--;
            }
            dir++;
            if (dir > 3)dir = 0;
        }
        if (step > 1)step--;
        if (!l)l = true, s--;
    }

    for (double a = 0; a < tests.size() / 2; a++)
    {
        float x = tests[a * 2 + 0] - 1;
        float y = tests[a * 2 + 1] - 1;
        cout << grid[y * n + x] << "\n";
    }
}

Test details

Test 1

Group: 1

Verdict:

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
...

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
...

Test 3

Group: 3

Verdict:

input
1000000000 1000
177757853 827347032
409613589 419171337
739269360 256524697
328695530 896842209
...

correct output
571375684522141210
967321186816598569
762879105851175000
370065046779516790
936897883750373771
...

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc