(I3
I114
I9
(dp0
Vagrain.%l
p1
(Vagrain.cpp
p2
S'#include <iostream>\r\n#include <set>\r\n\r\nusing namespace std;\r\n\r\nset < int > pos;\r\n\r\nint main ()\r\n{\r\n    cin.tie (nullptr);\r\n    ios::sync_with_stdio (false);\r\n    int N, L, D, A, B;\r\n    int64_t X;\r\n    cin >> N >> L >> D >> X >> A >> B;\r\n    for (int i = 0 ; i < N ; i ++)\r\n    {\r\n        pos.insert (X);\r\n        if (pos.size () == 1)\r\n        {\r\n            if (X <= D and L - X <= D)\r\n            {\r\n                cout << "1\\n";\r\n                return 0;\r\n            }\r\n        }\r\n        else if (pos.size () == 2)\r\n        {\r\n            int a, b;\r\n            auto it = pos.begin();\r\n            a = *it;\r\n            it ++;\r\n            b = *it;\r\n            //cout << a << " " << b << "\\n";\r\n            if (a <= D and b - a <= D and L - b <= D)\r\n            {\r\n                cout << "2\\n";\r\n                return 0;\r\n            }\r\n        }\r\n        else\r\n        {\r\n            //cout << "Insert of " << X << endl;\r\n            auto start = pos.begin ();\r\n            if (*start <= D)\r\n            {\r\n                //cout << "Min X (" << *start << ") is smaller or equal then " << D << endl;\r\n                start ++;\r\n                auto end = pos.end ();\r\n                end --;\r\n                for (auto it = start ; it != end ; it ++)\r\n                {\r\n                    auto itNext = it, itPrev = it;\r\n\r\n                    auto curr = *it;\r\n\r\n                    itPrev --; auto prev = *it;\r\n\r\n                    itNext ++; auto next = *it;\r\n                    //cout << "Checking for " << prev << " and " << next << " is in interval [" << X - D << ", " << X + D << "]" << endl;\r\n\r\n                    if ((prev >= curr - D and prev <= curr + D) and\r\n                        (next >= curr - D and next <= curr + D))\r\n                    {\r\n                        //cout << prev << " and " << next << " are in interval [" << X - D << ", " << X + D << "]" << endl;\r\n                    }\r\n                    else\r\n                        goto Break;\r\n                }\r\n                cout << i + 1 << endl;\r\n                return 0;\r\n                Break:\r\n                {\r\n\r\n                }\r\n            }\r\n        }\r\n        X = (X * A + B) % (L + 1);\r\n    }\r\n    return 0;\r\n}\r\n'
p3
tp4
stp5
.