Submission #1364635

#TimeUsernameProblemLanguageResultExecution timeMemory
1364635aaatroushRotating Lines (APIO25_rotate)C++20
11 / 100
29 ms2568 KiB
#include "rotate.h"
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
#define ll int
#define all(x) x.begin(), x.end()
#define pb push_back
#define pii pair<ll, ll>
#define in(v) for(auto &elem:v){ cin>>elem; }
#define out(v) for(auto elem:v){ cout<<elem.first<<" "; } cout<<endl;
#define FAST ios_base::sync_with_stdio(false); cin.tie(NULL);
typedef tree<pii, null_type, std::greater<>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

void energy(int n, std::vector<int> v){
    vector<pii> angles(n);
    for(ll i = 0; i<n; i++){
        angles[i] = {v[i], i};
    }
    sort(all(angles), greater<pii>());
    //out(angles);
    for(ll i = 0; i<n/2; i++){
        ll x = 25000 - angles[i].first;
        rotate({angles[i].second}, x);
    }
    if(n%2 == 1){
        ll x;
        if(angles[n/2].first <= 12500){
            x = 12500-angles[n/2].first;
        }
        else{
            x = (25000-angles[n/2].first) + 75000 + 12500;
        }
        rotate({angles[n/2].second}, x);
    }
    for(ll i = (n+1)/2; i<n; i++){
        ll x = (25000-angles[i].first) + 75000;
        rotate({angles[i].second}, x);
    }
}
#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...