Блог пользователя OmarAboutaleb77

Автор OmarAboutaleb77, 5 часов назад, По-английски

As OpenAI's o1-preview model is now available to paid OpenAI users, I want to ask if people with access to it can provide feedback and verify that the model truly is around 1258 rating.

I personally don't have access to the model, but I did ask a discord user with access to it to give it this 1100 rated problem and ask it to solve it. Based on it's rating of 1258, it should be able to solve the problem 71.3% of the times it sees it in contests.

Response:

To solve this problem, we need to determine the minimal number of moves Freya must make to reach the point ((x, y)) from ((0, 0)) while adhering to the movement constraints provided.

1. Approach:

Compute the minimal number of moves along each axis: For the $$$(x)$$$-axis, since Freya moves along it on odd-numbered moves starting from the first move, the minimal number of moves required is $$$(\lceil \frac{x}{k} \rceil)$$$. For the $$$(y)$$$-axis, since she moves along it on even-numbered moves, the minimal number of moves required is $$$(\lceil\frac{y}{k} \rceil)$$$.

2. Calculate potential total moves:

Option 1 (Even total moves): The total number of moves is even, $$$(n_{\text{even}} = 2 \times \max(a, b))$$$, where (a) and (b) are the minimal moves along the $$$(x)$$$-axis and $$$(y)$$$-axis, respectively. Option 2 (Odd total moves): The total number of moves is odd, $$$(n_{\text{odd}} = \max(2a — 1, 2b + 1))$$$.

3. Determine the minimal total moves:

The minimal number of total moves $$$(n)$$$ is the minimum between $$$(n{\text{even}})$$$ and $$$(n{\text{odd}})$$$.

4. Implementation Details:

Use integer division with rounding up to calculate $$$(a)$$$ and (b). Ensure that the calculations handle edge cases where $$$(x)$$$ or $$$(y)$$$ is zero. For multiple test cases, iterate through each case and apply the same logic.

5. Here is the complete C++ code implementing the above approach:

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
int main() {
    int t;
    cin >> t;
    while (t--) {
        ll x, y, k;
        cin >> x >> y >> k;
        ll a = (x + k - 1) / k;
        ll b = (y + k - 1) / k;
        ll n_even = 2 * max(a, b);
        ll n_odd_candidate = max(2 * a - 1, 2 * b + 1);
        ll minimal_n = min(n_even, n_odd_candidate);
        cout << minimal_n << '\n';
    }
    return 0;
}

6. Explanation of the Code:

We read the number of test cases $$$(t)$$$ and iterate over each case. For each test case, we read the values of $$$(x)$$$, $$$(y)$$$, and $$$(k)$$$. We compute $$$(a)$$$ and $$$(b)$$$ using the ceiling of the division $$$(\frac{x}{k})$$$ and $$$(\frac{y}{k})$$$, respectively. We calculate the two options for the total number of moves $$$((n{\text{even}})$$$ and $$$(n{\text{odd}}))$$$. The minimal total moves $$$(n)$$$ is the minimum of these two options. Finally, we output the minimal number of moves for each test case.

Reflection

Of course, solving an 1100-rated problem isn't very impressive. It does however lend credence to the fact the OpenAI's o1-preview model is 1258 rated. Also, it can solve the problem faster than pretty much any human, it took 49 seconds for it to think of the solution, and then it quickly outputted the code and explanation.

Another interesting aspect is that it can probably help clarify questions and write editorials to problems much better than old versions. That would be very useful for getting intuition for problems or getting responses quickly.

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

»
4 часа назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
»
4 часа назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

those problems are highly likely in the training set imo.

  • »
    »
    4 часа назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I think that's very unlikely. The knowledge cutoff for the model is before the release date of many of these problems.