Submission #1368423

#TimeUsernameProblemLanguageResultExecution timeMemory
1368423isctRotating Lines (APIO25_rotate)C++20
0 / 100
1 ms836 KiB
#include <bits/stdc++.h>
#include "rotate.h"
using namespace std;

long long find_energy(long long n, vector<int> &v)
{
    long long res = 0;
    for (long long i = 0; i < (long long)v.size(); i++)
    {
        for (long long j = i + 1; j < (long long)v.size(); j++)
        {
            int d = abs(v[i] - v[j]);
            res += std::min(d, 50000 - d);
        }
    }
    return res;
}

void energy(int n, vector<int> v)
{

    for (int i = 0; i < n; i++)
    {
        // case 1- you send this to zero
        vector<int> zero(v.begin(), v.end());
        vector<int> ninety(v.begin(), v.end());

        int tozero = 0;
        int toninety = 25000;

        vector<int> indices = {i};

        zero[i] = (zero[i] + tozero) % 50000;
        ninety[i] = (ninety[i] + toninety) % 50000;

        if (find_energy(n, zero) >= find_energy(n, ninety))
        {
            v = zero;
        }
        else
        {
            rotate(indices, toninety);
            v = ninety;
        }
    }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...