提出 #64986393


ソースコード 拡げる

#line 1 "a.cpp"
#line 1 "a.cpp"
// (⁠◕⁠ᴗ⁠◕⁠✿⁠)

// #pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); i++)
#define srep(i, s, n) for (ll i = s; i < (n); i++)
#define len(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
using namespace std;
template<typename T> using vc = vector<T>;
template<typename T> using vv = vc<vc<T>>;
using vi = vc<int>;using vvi = vv<int>; using vvvi = vv<vi>;
using ll = long long;using vl = vc<ll>;using vvl = vv<ll>; using vvvl = vv<vl>;
using ld = long double; using vld = vc<ld>; using vvld = vc<vld>; using vvvld = vc<vvld>;
using uint = unsigned int;
using ull = unsigned long long;
const ld pi = 3.141592653589793;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
// const ll mod = 1000000007;
const ll mod = 998244353;

#define debug(var)  do{std::cout << #var << " : \n";view(var);}while(0)
template<typename T> void view(T e){cout << e << endl;}
template<typename T> void view(const vc<T>& v){for(const auto& e : v){ cout << e << " "; } cout << endl;}
template<typename T> void view(const vv<T>& vv){ for(const auto& v : vv){ view(v); } }

// #define DEBUG

#ifdef DEBUG
constexpr bool DEBUGMODE = true;
#else
constexpr bool DEBUGMODE = false;
#endif

ofstream wrt;
string outputfile = "output.txt", inputfile = "input.txt";


unsigned int randxor(){
    static unsigned int x = 123456789, y = 362436069, z = 521288629, w = 88675123;
    unsigned int t;
    t = (x ^ (x << 11)); x = y; y = z; z = w; return w = (w ^ (w >> 19)) ^ (t ^ (t >> 8));
}
int randint(int a, int b) {return(a + randxor() % (b - a));}

struct Timer {
    public:
        Timer(int limit){
            start = chrono::high_resolution_clock::now();
            goal = start + chrono::milliseconds(limit);
        }

        inline double rate(){
            return (chrono::high_resolution_clock::now() - start).count() / (double)(goal - start).count();
        }

        inline int get_time(){return (chrono::high_resolution_clock::now() - start).count() / 1e6;}

    private:
        chrono::high_resolution_clock::time_point start;
        chrono::high_resolution_clock::time_point goal;  
};

constexpr array<double, 1000> log_table = {
                        -100, -6.90776, -6.21461, -5.80914, -5.52146, -5.29832, -5.116, -4.96185, -4.82831, -4.71053, -4.60517, -4.50986, -4.42285, -4.34281, -4.2687, -4.19971, -4.13517, -4.07454, -4.01738, -3.96332, -3.91202, -3.86323, -3.81671, -3.77226, -3.7297, -3.68888, -3.64966, -3.61192, -3.57555, -3.54046, -3.50656, -3.47377, -3.44202, -3.41125, -3.38139, -3.35241, -3.32424, -3.29684, -3.27017, -3.24419, -3.21888, -3.19418, -3.17009, -3.14656, -3.12357, -3.10109, -3.07911, -3.05761, -3.03655, -3.01593, -2.99573, -2.97593, -2.95651, -2.93746, -2.91877, -2.90042, -2.8824, -2.8647, -2.84731, -2.83022, -2.81341, -2.79688, -2.78062, -2.76462, -2.74887, -2.73337, -2.7181, -2.70306, -2.68825, -2.67365, -2.65926, -2.64508, -2.63109, -2.6173, -2.60369, -2.59027, -2.57702, -2.56395, -2.55105, -2.53831, -2.52573, -2.51331, -2.50104, -2.48891, -2.47694, -2.4651, -2.45341, -2.44185, -2.43042, -2.41912, -2.40795, -2.3969, -2.38597, -2.37516, -2.36446, -2.35388, -2.34341, -2.33304, -2.32279, -2.31264, 
                        -2.30259, -2.29263, -2.28278, -2.27303, -2.26336, -2.25379, -2.24432, -2.23493, -2.22562, -2.21641, -2.20727, -2.19823, -2.18926, -2.18037, -2.17156, -2.16282, -2.15417, -2.14558, -2.13707, -2.12863, -2.12026, -2.11196, -2.10373, -2.09557, -2.08747, -2.07944, -2.07147, -2.06357, -2.05573, -2.04794, -2.04022, -2.03256, -2.02495, -2.01741, -2.00992, -2.00248, -1.9951, -1.98777, -1.9805, -1.97328, -1.96611, -1.959, -1.95193, -1.94491, -1.93794, -1.93102, -1.92415, -1.91732, -1.91054, -1.90381, -1.89712, -1.89048, -1.88387, -1.87732, -1.8708, -1.86433, -1.8579, -1.85151, -1.84516, -1.83885, -1.83258, -1.82635, -1.82016, -1.81401, -1.80789, -1.80181, -1.79577, -1.78976, -1.78379, -1.77786, -1.77196, -1.76609, -1.76026, -1.75446, -1.7487, -1.74297, -1.73727, -1.73161, -1.72597, -1.72037, -1.7148, -1.70926, -1.70375, -1.69827, -1.69282, -1.6874, -1.68201, -1.67665, -1.67131, -1.66601, -1.66073, -1.65548, -1.65026, -1.64507, -1.6399, -1.63476, -1.62964, -1.62455, -1.61949, -1.61445, 
                        -1.60944, -1.60445, -1.59949, -1.59455, -1.58964, -1.58475, -1.57988, -1.57504, -1.57022, -1.56542, -1.56065, -1.5559, -1.55117, -1.54646, -1.54178, -1.53712, -1.53248, -1.52786, -1.52326, -1.51868, -1.51413, -1.50959, -1.50508, -1.50058, -1.49611, -1.49165, -1.48722, -1.48281, -1.47841, -1.47403, -1.46968, -1.46534, -1.46102, -1.45672, -1.45243, -1.44817, -1.44392, -1.4397, -1.43548, -1.43129, -1.42712, -1.42296, -1.41882, -1.41469, -1.41059, -1.4065, -1.40242, -1.39837, -1.39433, -1.3903, -1.38629, -1.3823, -1.37833, -1.37437, -1.37042, -1.36649, -1.36258, -1.35868, -1.3548, -1.35093, -1.34707, -1.34323, -1.33941, -1.3356, -1.33181, -1.32803, -1.32426, -1.32051, -1.31677, -1.31304, -1.30933, -1.30564, -1.30195, -1.29828, -1.29463, -1.29098, -1.28735, -1.28374, -1.28013, -1.27654, -1.27297, -1.2694, -1.26585, -1.26231, -1.25878, -1.25527, -1.25176, -1.24827, -1.24479, -1.24133, -1.23787, -1.23443, -1.231, -1.22758, -1.22418, -1.22078, -1.2174, -1.21402, -1.21066, -1.20731, 
                        -1.20397, -1.20065, -1.19733, -1.19402, -1.19073, -1.18744, -1.18417, -1.18091, -1.17766, -1.17441, -1.17118, -1.16796, -1.16475, -1.16155, -1.15836, -1.15518, -1.15201, -1.14885, -1.1457, -1.14256, -1.13943, -1.13631, -1.1332, -1.1301, -1.12701, -1.12393, -1.12086, -1.1178, -1.11474, -1.1117, -1.10866, -1.10564, -1.10262, -1.09961, -1.09661, -1.09362, -1.09064, -1.08767, -1.08471, -1.08176, -1.07881, -1.07587, -1.07294, -1.07002, -1.06711, -1.06421, -1.06132, -1.05843, -1.05555, -1.05268, -1.04982, -1.04697, -1.04412, -1.04129, -1.03846, -1.03564, -1.03282, -1.03002, -1.02722, -1.02443, -1.02165, -1.01888, -1.01611, -1.01335, -1.0106, -1.00786, -1.00512, -1.00239, -0.999672, -0.996959, -0.994252, -0.991553, -0.988861, -0.986177, -0.983499, -0.980829, -0.978166, -0.97551, -0.972861, -0.970219, -0.967584, -0.964956, -0.962335, -0.95972, -0.957113, -0.954512, -0.951918, -0.949331, -0.94675, -0.944176, -0.941609, -0.939048, -0.936493, -0.933946, -0.931404, -0.92887, -0.926341, -0.923819, -0.921303, -0.918794, 
                        -0.916291, -0.913794, -0.911303, -0.908819, -0.90634, -0.903868, -0.901402, -0.898942, -0.896488, -0.89404, -0.891598, -0.889162, -0.886732, -0.884308, -0.881889, -0.879477, -0.87707, -0.874669, -0.872274, -0.869884, -0.867501, -0.865122, -0.86275, -0.860383, -0.858022, -0.855666, -0.853316, -0.850971, -0.848632, -0.846298, -0.84397, -0.841647, -0.83933, -0.837018, -0.834711, -0.832409, -0.830113, -0.827822, -0.825536, -0.823256, -0.820981, -0.81871, -0.816445, -0.814186, -0.811931, -0.809681, -0.807436, -0.805197, -0.802962, -0.800732, -0.798508, -0.796288, -0.794073, -0.791863, -0.789658, -0.787458, -0.785262, -0.783072, -0.780886, -0.778705, -0.776529, -0.774357, -0.77219, -0.770028, -0.767871, -0.765718, -0.76357, -0.761426, -0.759287, -0.757153, -0.755023, -0.752897, -0.750776, -0.74866, -0.746548, -0.74444, -0.742337, -0.740239, -0.738145, -0.736055, -0.733969, -0.731888, -0.729811, -0.727739, -0.72567, -0.723606, -0.721547, -0.719491, -0.71744, -0.715393, -0.71335, -0.711311, -0.709277, -0.707246, -0.70522, -0.703198, -0.701179, -0.699165, -0.697155, -0.695149, 
                        -0.693147, -0.691149, -0.689155, -0.687165, -0.685179, -0.683197, -0.681219, -0.679244, -0.677274, -0.675307, -0.673345, -0.671386, -0.669431, -0.667479, -0.665532, -0.663588, -0.661649, -0.659712, -0.65778, -0.655851, -0.653926, -0.652005, -0.650088, -0.648174, -0.646264, -0.644357, -0.642454, -0.640555, -0.638659, -0.636767, -0.634878, -0.632993, -0.631112, -0.629234, -0.627359, -0.625489, -0.623621, -0.621757, -0.619897, -0.61804, -0.616186, -0.614336, -0.612489, -0.610646, -0.608806, -0.606969, -0.605136, -0.603306, -0.60148, -0.599657, -0.597837, -0.59602, -0.594207, -0.592397, -0.590591, -0.588787, -0.586987, -0.58519, -0.583396, -0.581606, -0.579818, -0.578034, -0.576253, -0.574476, -0.572701, -0.57093, -0.569161, -0.567396, -0.565634, -0.563875, -0.562119, -0.560366, -0.558616, -0.55687, -0.555126, -0.553385, -0.551648, -0.549913, -0.548181, -0.546453, -0.544727, -0.543005, -0.541285, -0.539568, -0.537854, -0.536143, -0.534435, -0.53273, -0.531028, -0.529329, -0.527633, -0.525939, -0.524249, -0.522561, -0.520876, -0.519194, -0.517515, -0.515838, -0.514165, -0.512494, 
                        -0.510826, -0.50916, -0.507498, -0.505838, -0.504181, -0.502527, -0.500875, -0.499226, -0.49758, -0.495937, -0.494296, -0.492658, -0.491023, -0.48939, -0.48776, -0.486133, -0.484508, -0.482886, -0.481267, -0.47965, -0.478036, -0.476424, -0.474815, -0.473209, -0.471605, -0.470004, -0.468405, -0.466809, -0.465215, -0.463624, -0.462035, -0.460449, -0.458866, -0.457285, -0.455706, -0.45413, -0.452557, -0.450986, -0.449417, -0.447851, -0.446287, -0.444726, -0.443167, -0.441611, -0.440057, -0.438505, -0.436956, -0.435409, -0.433865, -0.432323, -0.430783, -0.429246, -0.427711, -0.426178, -0.424648, -0.42312, -0.421594, -0.420071, -0.41855, -0.417032, -0.415515, -0.414001, -0.41249, -0.41098, -0.409473, -0.407968, -0.406466, -0.404965, -0.403467, -0.401971, -0.400478, -0.398986, -0.397497, -0.39601, -0.394525, -0.393043, -0.391562, -0.390084, -0.388608, -0.387134, -0.385662, -0.384193, -0.382726, -0.38126, -0.379797, -0.378336, -0.376878, -0.375421, -0.373966, -0.372514, -0.371064, -0.369615, -0.368169, -0.366725, -0.365283, -0.363843, -0.362406, -0.36097, -0.359536, -0.358105, 
                        -0.356675, -0.355247, -0.353822, -0.352398, -0.350977, -0.349557, -0.34814, -0.346725, -0.345311, -0.3439, -0.34249, -0.341083, -0.339677, -0.338274, -0.336872, -0.335473, -0.334075, -0.332679, -0.331286, -0.329894, -0.328504, -0.327116, -0.32573, -0.324346, -0.322964, -0.321584, -0.320205, -0.318829, -0.317454, -0.316082, -0.314711, -0.313342, -0.311975, -0.31061, -0.309246, -0.307885, -0.306525, -0.305167, -0.303811, -0.302457, -0.301105, -0.299755, -0.298406, -0.297059, -0.295714, -0.294371, -0.29303, -0.29169, -0.290352, -0.289016, -0.287682, -0.28635, -0.285019, -0.28369, -0.282363, -0.281038, -0.279714, -0.278392, -0.277072, -0.275754, -0.274437, -0.273122, -0.271809, -0.270497, -0.269187, -0.267879, -0.266573, -0.265268, -0.263966, -0.262664, -0.261365, -0.260067, -0.258771, -0.257476, -0.256183, -0.254892, -0.253603, -0.252315, -0.251029, -0.249744, -0.248461, -0.24718, -0.245901, -0.244623, -0.243346, -0.242072, -0.240798, -0.239527, -0.238257, -0.236989, -0.235722, -0.234457, -0.233194, -0.231932, -0.230672, -0.229413, -0.228156, -0.226901, -0.225647, -0.224394, 
                        -0.223144, -0.221894, -0.220647, -0.219401, -0.218156, -0.216913, -0.215672, -0.214432, -0.213193, -0.211956, -0.210721, -0.209487, -0.208255, -0.207024, -0.205795, -0.204567, -0.203341, -0.202116, -0.200893, -0.199671, -0.198451, -0.197232, -0.196015, -0.194799, -0.193585, -0.192372, -0.191161, -0.189951, -0.188742, -0.187535, -0.18633, -0.185125, -0.183923, -0.182722, -0.181522, -0.180324, -0.179127, -0.177931, -0.176737, -0.175545, -0.174353, -0.173164, -0.171975, -0.170788, -0.169603, -0.168419, -0.167236, -0.166055, -0.164875, -0.163696, -0.162519, -0.161343, -0.160169, -0.158996, -0.157824, -0.156654, -0.155485, -0.154317, -0.153151, -0.151986, -0.150823, -0.149661, -0.1485, -0.147341, -0.146183, -0.145026, -0.14387, -0.142716, -0.141564, -0.140412, -0.139262, -0.138113, -0.136966, -0.13582, -0.134675, -0.133531, -0.132389, -0.131248, -0.130109, -0.12897, -0.127833, -0.126698, -0.125563, -0.12443, -0.123298, -0.122168, -0.121038, -0.11991, -0.118784, -0.117658, -0.116534, -0.115411, -0.114289, -0.113169, -0.11205, -0.110932, -0.109815, -0.108699, -0.107585, -0.106472, 
                        -0.105361, -0.10425, -0.103141, -0.102033, -0.100926, -0.0998203, -0.098716, -0.0976128, -0.0965109, -0.0954102, -0.0943107, -0.0932124, -0.0921153, -0.0910194, -0.0899247, -0.0888312, -0.0877389, -0.0866478, -0.0855579, -0.0844692, -0.0833816, -0.0822952, -0.0812101, -0.080126, -0.0790432, -0.0779615, -0.076881, -0.0758017, -0.0747235, -0.0736465, -0.0725707, -0.071496, -0.0704225, -0.0693501, -0.0682788, -0.0672087, -0.0661398, -0.065072, -0.0640053, -0.0629398, -0.0618754, -0.0608121, -0.05975, -0.058689, -0.0576291, -0.0565704, -0.0555127, -0.0544562, -0.0534008, -0.0523465, -0.0512933, -0.0502412, -0.0491902, -0.0481404, -0.0470916, -0.0460439, -0.0449974, -0.0439519, -0.0429075, -0.0418642, -0.040822, -0.0397809, -0.0387408, -0.0377019, -0.036664, -0.0356272, -0.0345914, -0.0335568, -0.0325232, -0.0314907, -0.0304592, -0.0294288, -0.0283995, -0.0273712, -0.026344, -0.0253178, -0.0242927, -0.0232686, -0.0222456, -0.0212236, -0.0202027, -0.0191828, -0.018164, -0.0171462, -0.0161294, -0.0151136, -0.0140989, -0.0130852, -0.0120726, -0.0110609, -0.0100503, -0.00904074,
                        -0.00803217, -0.00702461, -0.00601807, -0.00501254, -0.00400802, -0.00300451, -0.002002, -0.0010005
                        };

//variable0
// constexpr int TIME_LIMIT = 1900;
constexpr int TIME_LIMIT = 950;
int X, Y, Z;
vi xx, xy;
vi yx, yy;
vi zx, zy;

namespace simulated_annealing {

using Cost = double;

struct Config {
    int time_limit;
    double temperatures[10];
    int probability[2];
};

struct State {
    double DIST[101][101] = {};
    Cost score;
    vi P;
    State(){
        P.resize(X);
        iota(all(P), 0);
        sort(P.begin(), P.end(), [&](int i, int j) {
            if(xx[i] != xx[j]) return xx[i] < xx[j];
            return xy[i] < xy[j];
        });
        for(int a = 0; a < 100; a++) for(int b = 0; b < 100; b++) DIST[a][b] = 0;
        score = CalcScore();
    }

    Cost dist(int a, int b) {
        if(DIST[a][b] == 0) DIST[a][b] = hypot(abs(xx[a] - xx[b]), abs(xy[a] - xy[b]));
        // return sqrt((double)(xx[a] - xx[b]) * (xx[a] - xx[b]) + (double)(xy[a] - xy[b]) * (xy[a] - xy[b]));
        return DIST[a][b];
    }

    Cost CalcScore(){
        Cost ret = 0;
        rep(i, len(P) - 1) ret += dist(P[i], P[i + 1]);
        return ret;
    }


    void two_opt(Cost &threshold){
        int l = randint(0, len(P)), r = randint(0, len(P));
        if (l > r) swap(l, r);
        Cost dif = 0;
        if (l > 0){
            dif -= dist(P[l - 1], P[l]);
            dif += dist(P[l - 1], P[r]);
        }
        if (r < len(xx) - 1){
            dif -= dist(P[r], P[r + 1]);
            dif += dist(P[l], P[r + 1]);
        }
        Cost subscore = score + dif;
        if (subscore <= threshold){
            score = subscore;
            reverse(P.begin() + l, P.begin() + r + 1);
        }
    }
};

State simulated_annealing(const Config& config, State state) {
    State best;
    Timer timer(config.time_limit);
    int roop = 0;
    double tmp = config.temperatures[0];
    while (true){
        roop++;
        int randomint = randint(0, config.probability[1]);
        Cost threshold = state.score - tmp * log_table[randint(0, 1000)];

        // if (randomint < config.probability[0]){ // transition 01

        // }else{ // transition 02

        // }
        state.two_opt(threshold);

        if (best.score > state.score){ // update best
            best = state;
        }

        if (roop % 1000 == 0){
            if (roop % 10000000 == 0) cerr << state.score << " " << best.score << endl;
            double rate = timer.rate();
            tmp = config.temperatures[(int)(rate * 10)];
            if (timer.rate() > 1.0){
                cerr << "roop : " << roop << endl;
                cerr << "score : " << best.score << endl;
                break;
            }
        }
    }
    return best;
};

}// namespace simulated_annealing


using Point = pair<int, int>;

int orient(const Point& a, const Point& b, const Point& p) {
    return (b.first - a.first) * (p.second - a.second) - 
           (b.second - a.second) * (p.first - a.first);
}

bool contains(const Point& p, const Point& a, const Point& b, const Point& c) {
    // degenerate (colinear) case
    if (orient(a, b, c) == 0) {
        if (orient(a, b, p) != 0 || orient(a, c, p) != 0) {
            return false;
        }
        int xs[] = {a.first, b.first, c.first};
        int ys[] = {a.second, b.second, c.second};
        return *min_element(xs, xs + 3) <= p.first && p.first <= *max_element(xs, xs + 3) &&
               *min_element(ys, ys + 3) <= p.second && p.second <= *max_element(ys, ys + 3);
    }

    // non-degenerate: check same side of all edges
    int c1 = orient(a, b, p);
    int c2 = orient(b, c, p);
    int c3 = orient(c, a, p);
    return (c1 >= 0 && c2 >= 0 && c3 >= 0) || (c1 <= 0 && c2 <= 0 && c3 <= 0);
}

struct Solver{
    simulated_annealing::State ans;
    int ROGIFLAG = 0;
    void input(){
        if (DEBUGMODE){
            ifstream in(inputfile);
            cin.rdbuf(in.rdbuf());
            cin >> X >> Y >> Z;
            xx.resize(X);
            xy.resize(X);
            rep(i, X) cin >> xx[i] >> xy[i];
            yx.resize(Y);
            yy.resize(Y);
            rep(i, Y) cin >> yx[i] >> yy[i];
            zx.resize(Z);
            zy.resize(Z);
            rep(i, Z) cin >> zx[i] >> zy[i];
        }else{
            cin >> X >> Y >> Z;
            xx.resize(X);
            xy.resize(X);
            rep(i, X) cin >> xx[i] >> xy[i];
            yx.resize(Y);
            yy.resize(Y);
            rep(i, Y) cin >> yx[i] >> yy[i];
            zx.resize(Z);
            zy.resize(Z);
            rep(i, Z) cin >> zx[i] >> zy[i];
        }
    }

    vector<vector<int>> ANSWER0, ANSWER1;
    void output(){
        if (DEBUGMODE){
            for (auto p : ans.P){
                wrt << xx[p] << " " << xy[p] << " " << xx[p] << " " << xy[p] << " 0 0 0 0" << endl;
            }
        }else{
            for (auto p : ans.P){
                if(ROGIFLAG == 0) {
                    ANSWER0.push_back({xx[p], xy[p], xx[p], xy[p], 0, 0, 0, 0});
                    // cout << xx[p] << " " << xy[p] << " " << xx[p] << " " << xy[p] << " 0 0 0 0" << endl;
                } else {
                    ANSWER1.push_back({0, 0, 0, 0, xx[p], xy[p], xx[p], xy[p]});
                    // cout << "0 0 0 0 " << xx[p] << " " << xy[p] << " " << xx[p] << " " << xy[p] << endl;
                }
            }
        }
    }

    void LAST() {
        // for(auto &vec : ANSWER0) {
        //     for(int i : {4, 5, 6, 7}) vec[i] = ANSWER1[0][i];
        // }
        // for(auto &vec : ANSWER1) {
        //     for(int i : {0, 1, 2, 3}) vec[i] = ANSWER0.back()[i];
        // }
        // for(auto vec : ANSWER0) for(int i = 0; i < 8; i++) cout << vec[i] << " \n"[i + 1 == 8];
        // for(auto vec : ANSWER0) for(int i = 0; i < 8; i++) cout << vec[i] << " \n"[i + 1 == 8];

        const int n = ANSWER0.size();
        for(int i = 0; i < n; i++) {
            cout << ANSWER0[i][0] << " " << ANSWER0[i][1] << " " << ANSWER0[i][2] << " " << ANSWER0[i][3] << " ";
            cout << ANSWER1[i][4] << " " << ANSWER1[i][5] << " " << ANSWER1[i][6] << " " << ANSWER1[i][7] << endl;
        }
    }

    void run(){
        ROGIFLAG = 0;
        Timer timer(TIME_LIMIT);
        input();
        simulated_annealing::Config config = {
            TIME_LIMIT - timer.get_time(),
            {1000, 888.889, 777.778, 666.667, 555.556, 444.444, 333.333, 222.222, 111.111, 0, },
            {100, 100}
        };
        simulated_annealing::State state;
        ans = simulated_annealing::simulated_annealing(config, state);
        output();

        timer = Timer(TIME_LIMIT);

        // input();
        ROGIFLAG = 1;
        swap(X, Y);
        swap(xx, yx);
        swap(xy, yy);
        config = {
            TIME_LIMIT - timer.get_time(),
            {1000, 888.889, 777.778, 666.667, 555.556, 444.444, 333.333, 222.222, 111.111, 0, },
            {100, 100}
        };
        state = simulated_annealing::State();
        ans = simulated_annealing::simulated_annealing(config, state);
        output();

        LAST();
    }
};

int main(){
    wrt.open(outputfile, ios::out);
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    Solver solver;
    solver.run();
    wrt.close();
    return 0;
}

提出情報

提出日時
問題 C - Cooperative Trash Sorting (C)
ユーザ Rogi
言語 C++ 20 (gcc 12.2)
得点 562906347
コード長 20719 Byte
結果 AC
実行時間 1903 ms
メモリ 4380 KiB

コンパイルエラー

a.cpp: In function ‘simulated_annealing::State simulated_annealing::simulated_annealing(const Config&, State)’:
a.cpp:154:13: warning: unused variable ‘randomint’ [-Wunused-variable]

ジャッジ結果

セット名 test_ALL
得点 / 配点 562906347 / 1500000000
結果
AC × 150
セット名 テストケース
test_ALL test_0000.txt, test_0001.txt, test_0002.txt, test_0003.txt, test_0004.txt, test_0005.txt, test_0006.txt, test_0007.txt, test_0008.txt, test_0009.txt, test_0010.txt, test_0011.txt, test_0012.txt, test_0013.txt, test_0014.txt, test_0015.txt, test_0016.txt, test_0017.txt, test_0018.txt, test_0019.txt, test_0020.txt, test_0021.txt, test_0022.txt, test_0023.txt, test_0024.txt, test_0025.txt, test_0026.txt, test_0027.txt, test_0028.txt, test_0029.txt, test_0030.txt, test_0031.txt, test_0032.txt, test_0033.txt, test_0034.txt, test_0035.txt, test_0036.txt, test_0037.txt, test_0038.txt, test_0039.txt, test_0040.txt, test_0041.txt, test_0042.txt, test_0043.txt, test_0044.txt, test_0045.txt, test_0046.txt, test_0047.txt, test_0048.txt, test_0049.txt, test_0050.txt, test_0051.txt, test_0052.txt, test_0053.txt, test_0054.txt, test_0055.txt, test_0056.txt, test_0057.txt, test_0058.txt, test_0059.txt, test_0060.txt, test_0061.txt, test_0062.txt, test_0063.txt, test_0064.txt, test_0065.txt, test_0066.txt, test_0067.txt, test_0068.txt, test_0069.txt, test_0070.txt, test_0071.txt, test_0072.txt, test_0073.txt, test_0074.txt, test_0075.txt, test_0076.txt, test_0077.txt, test_0078.txt, test_0079.txt, test_0080.txt, test_0081.txt, test_0082.txt, test_0083.txt, test_0084.txt, test_0085.txt, test_0086.txt, test_0087.txt, test_0088.txt, test_0089.txt, test_0090.txt, test_0091.txt, test_0092.txt, test_0093.txt, test_0094.txt, test_0095.txt, test_0096.txt, test_0097.txt, test_0098.txt, test_0099.txt, test_0100.txt, test_0101.txt, test_0102.txt, test_0103.txt, test_0104.txt, test_0105.txt, test_0106.txt, test_0107.txt, test_0108.txt, test_0109.txt, test_0110.txt, test_0111.txt, test_0112.txt, test_0113.txt, test_0114.txt, test_0115.txt, test_0116.txt, test_0117.txt, test_0118.txt, test_0119.txt, test_0120.txt, test_0121.txt, test_0122.txt, test_0123.txt, test_0124.txt, test_0125.txt, test_0126.txt, test_0127.txt, test_0128.txt, test_0129.txt, test_0130.txt, test_0131.txt, test_0132.txt, test_0133.txt, test_0134.txt, test_0135.txt, test_0136.txt, test_0137.txt, test_0138.txt, test_0139.txt, test_0140.txt, test_0141.txt, test_0142.txt, test_0143.txt, test_0144.txt, test_0145.txt, test_0146.txt, test_0147.txt, test_0148.txt, test_0149.txt
ケース名 結果 実行時間 メモリ
test_0000.txt AC 1901 ms 4320 KiB
test_0001.txt AC 1902 ms 4360 KiB
test_0002.txt AC 1902 ms 4360 KiB
test_0003.txt AC 1902 ms 4320 KiB
test_0004.txt AC 1902 ms 4320 KiB
test_0005.txt AC 1902 ms 4204 KiB
test_0006.txt AC 1902 ms 4148 KiB
test_0007.txt AC 1902 ms 4356 KiB
test_0008.txt AC 1902 ms 4200 KiB
test_0009.txt AC 1902 ms 4144 KiB
test_0010.txt AC 1902 ms 4320 KiB
test_0011.txt AC 1901 ms 4360 KiB
test_0012.txt AC 1902 ms 4204 KiB
test_0013.txt AC 1902 ms 4364 KiB
test_0014.txt AC 1902 ms 4200 KiB
test_0015.txt AC 1902 ms 4148 KiB
test_0016.txt AC 1902 ms 4244 KiB
test_0017.txt AC 1902 ms 4244 KiB
test_0018.txt AC 1901 ms 4208 KiB
test_0019.txt AC 1902 ms 4212 KiB
test_0020.txt AC 1902 ms 4324 KiB
test_0021.txt AC 1902 ms 4144 KiB
test_0022.txt AC 1902 ms 4364 KiB
test_0023.txt AC 1902 ms 4144 KiB
test_0024.txt AC 1902 ms 4372 KiB
test_0025.txt AC 1902 ms 4360 KiB
test_0026.txt AC 1902 ms 4320 KiB
test_0027.txt AC 1902 ms 4152 KiB
test_0028.txt AC 1902 ms 4352 KiB
test_0029.txt AC 1901 ms 4180 KiB
test_0030.txt AC 1902 ms 4152 KiB
test_0031.txt AC 1901 ms 4376 KiB
test_0032.txt AC 1902 ms 4324 KiB
test_0033.txt AC 1902 ms 4352 KiB
test_0034.txt AC 1902 ms 4156 KiB
test_0035.txt AC 1901 ms 4216 KiB
test_0036.txt AC 1901 ms 4324 KiB
test_0037.txt AC 1902 ms 4248 KiB
test_0038.txt AC 1902 ms 4200 KiB
test_0039.txt AC 1902 ms 4316 KiB
test_0040.txt AC 1902 ms 4320 KiB
test_0041.txt AC 1902 ms 4376 KiB
test_0042.txt AC 1901 ms 4144 KiB
test_0043.txt AC 1901 ms 4356 KiB
test_0044.txt AC 1902 ms 4368 KiB
test_0045.txt AC 1902 ms 4300 KiB
test_0046.txt AC 1902 ms 4212 KiB
test_0047.txt AC 1902 ms 4376 KiB
test_0048.txt AC 1902 ms 4120 KiB
test_0049.txt AC 1902 ms 4340 KiB
test_0050.txt AC 1902 ms 4208 KiB
test_0051.txt AC 1902 ms 4248 KiB
test_0052.txt AC 1902 ms 4300 KiB
test_0053.txt AC 1902 ms 4200 KiB
test_0054.txt AC 1902 ms 4312 KiB
test_0055.txt AC 1902 ms 4348 KiB
test_0056.txt AC 1902 ms 4144 KiB
test_0057.txt AC 1902 ms 4376 KiB
test_0058.txt AC 1902 ms 4156 KiB
test_0059.txt AC 1902 ms 4276 KiB
test_0060.txt AC 1902 ms 4360 KiB
test_0061.txt AC 1901 ms 4196 KiB
test_0062.txt AC 1902 ms 4356 KiB
test_0063.txt AC 1902 ms 4108 KiB
test_0064.txt AC 1902 ms 4204 KiB
test_0065.txt AC 1902 ms 4324 KiB
test_0066.txt AC 1901 ms 4200 KiB
test_0067.txt AC 1902 ms 4208 KiB
test_0068.txt AC 1902 ms 4360 KiB
test_0069.txt AC 1902 ms 4300 KiB
test_0070.txt AC 1902 ms 4204 KiB
test_0071.txt AC 1902 ms 4324 KiB
test_0072.txt AC 1902 ms 4248 KiB
test_0073.txt AC 1902 ms 4196 KiB
test_0074.txt AC 1902 ms 4244 KiB
test_0075.txt AC 1901 ms 4360 KiB
test_0076.txt AC 1902 ms 4244 KiB
test_0077.txt AC 1902 ms 4212 KiB
test_0078.txt AC 1902 ms 4156 KiB
test_0079.txt AC 1902 ms 4316 KiB
test_0080.txt AC 1902 ms 4200 KiB
test_0081.txt AC 1901 ms 4196 KiB
test_0082.txt AC 1902 ms 4204 KiB
test_0083.txt AC 1901 ms 4200 KiB
test_0084.txt AC 1902 ms 4360 KiB
test_0085.txt AC 1902 ms 4312 KiB
test_0086.txt AC 1902 ms 4324 KiB
test_0087.txt AC 1902 ms 4360 KiB
test_0088.txt AC 1902 ms 4320 KiB
test_0089.txt AC 1902 ms 4320 KiB
test_0090.txt AC 1902 ms 4208 KiB
test_0091.txt AC 1902 ms 4348 KiB
test_0092.txt AC 1902 ms 4152 KiB
test_0093.txt AC 1901 ms 4148 KiB
test_0094.txt AC 1902 ms 4364 KiB
test_0095.txt AC 1902 ms 4208 KiB
test_0096.txt AC 1902 ms 4348 KiB
test_0097.txt AC 1902 ms 4148 KiB
test_0098.txt AC 1901 ms 4252 KiB
test_0099.txt AC 1902 ms 4316 KiB
test_0100.txt AC 1902 ms 4380 KiB
test_0101.txt AC 1902 ms 4148 KiB
test_0102.txt AC 1902 ms 4244 KiB
test_0103.txt AC 1902 ms 4204 KiB
test_0104.txt AC 1902 ms 4360 KiB
test_0105.txt AC 1902 ms 4252 KiB
test_0106.txt AC 1901 ms 4208 KiB
test_0107.txt AC 1902 ms 4204 KiB
test_0108.txt AC 1902 ms 4316 KiB
test_0109.txt AC 1902 ms 4208 KiB
test_0110.txt AC 1902 ms 4156 KiB
test_0111.txt AC 1902 ms 4248 KiB
test_0112.txt AC 1902 ms 4320 KiB
test_0113.txt AC 1902 ms 4204 KiB
test_0114.txt AC 1902 ms 4312 KiB
test_0115.txt AC 1901 ms 4376 KiB
test_0116.txt AC 1902 ms 4356 KiB
test_0117.txt AC 1902 ms 4212 KiB
test_0118.txt AC 1902 ms 4224 KiB
test_0119.txt AC 1902 ms 4204 KiB
test_0120.txt AC 1902 ms 4248 KiB
test_0121.txt AC 1903 ms 4148 KiB
test_0122.txt AC 1901 ms 4208 KiB
test_0123.txt AC 1901 ms 4200 KiB
test_0124.txt AC 1902 ms 4148 KiB
test_0125.txt AC 1902 ms 4212 KiB
test_0126.txt AC 1902 ms 4208 KiB
test_0127.txt AC 1902 ms 4312 KiB
test_0128.txt AC 1902 ms 4204 KiB
test_0129.txt AC 1902 ms 4316 KiB
test_0130.txt AC 1902 ms 4344 KiB
test_0131.txt AC 1902 ms 4316 KiB
test_0132.txt AC 1902 ms 4200 KiB
test_0133.txt AC 1902 ms 4144 KiB
test_0134.txt AC 1902 ms 4248 KiB
test_0135.txt AC 1902 ms 4148 KiB
test_0136.txt AC 1902 ms 4156 KiB
test_0137.txt AC 1902 ms 4356 KiB
test_0138.txt AC 1902 ms 4212 KiB
test_0139.txt AC 1901 ms 4248 KiB
test_0140.txt AC 1902 ms 4360 KiB
test_0141.txt AC 1902 ms 4212 KiB
test_0142.txt AC 1902 ms 4316 KiB
test_0143.txt AC 1902 ms 4196 KiB
test_0144.txt AC 1902 ms 4148 KiB
test_0145.txt AC 1902 ms 4204 KiB
test_0146.txt AC 1901 ms 4360 KiB
test_0147.txt AC 1902 ms 4248 KiB
test_0148.txt AC 1902 ms 4148 KiB
test_0149.txt AC 1902 ms 4152 KiB