CSES - Datatähti 2022 alku - Results
Submission details
Task:Spiraali
Sender:Matenstein
Submission time:2021-10-04 13:53:23 +0300
Language:C++17
Status:READY
Result:35
Feedback
groupverdictscore
#1ACCEPTED15
#2ACCEPTED20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1details
#2ACCEPTED0.89 s2details
#3--3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:34:50: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 if (v <= n * n)for (int t = 0; t < tests.size(); t++)if (x == tests[t].x && y == tests[t].y)tests[t].v = v;
                                                ~~^~~~~~~~~~~~~~
input/code.cpp:48:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int a = 0; a < tests.size(); a++)
                     ~~^~~~~~~~~~~~~~
input/code.cpp:24:9: warning: variable 'grid' set but not used [-Wunused-but-set-variable]
     int grid[6][6];
         ^~~~

Code

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

struct test
{
    float x, y, v;
};
int main() 
{
    float n, t;
    vector<test>tests;
    
    cin >> n >> t;

    for (float a = 0; a < t; a++)
    {
        float x, y;
        cin >> y >> x;
        test t;
        t.x = x - 1, t.y = y - 1, t.v = 0;
        tests.push_back(t);
    }
    int grid[6][6];
    for (int y = 0; y < 6; y++)for (int x = 0; x < 6; x++)grid[y][x] = 0;
    float x = 0, y = 0, s = 2, step = n - 1, dir = 0; bool l = false;
    float v = 1;
    while (v <= n * n)
    {
        for (float z = 0; z <= s; z++)
        {
            for (float a = 0; a < step; a++)
            {
                if (v <= n * n)for (int t = 0; t < tests.size(); t++)if (x == tests[t].x && y == tests[t].y)tests[t].v = 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 (int a = 0; a < tests.size(); a++)
    {
        cout << tests[a].v << "\n";
    }
}

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

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)