Submission #1358205

#TimeUsernameProblemLanguageResultExecution timeMemory
1358205silence25마술쇼 (APIO24_show)C++20
35 / 100
2 ms836 KiB
#include "Alice.h"
#include "bits/stdc++.h"
#define ff first
#define ss second
#define pp pop_back
#define ll long long
#define pb push_back
#define ls(v) (int)v.size()
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define wr cout << "------------------------" << endl
using namespace std;

vector<pair<int,int>> Alice(){
    int n = 5000;
    int k = setN(n);
    int x = (k + n - 1) / n;
    int y = k % n == 0 ? n : k % n;
    int xy = (x + y) % n;
    vector<pair<int, int>> v;
    int cnt = 0, p, q, r;
    for(int i = 1;i<=n;++i){
        if(i == x or i == y or i == xy) continue;
        cnt += 1;
        if(cnt <= 1666) v.pb({x, i}), p = i;
        else if(cnt <= 3331) v.pb({y, i}), q = i;
        else v.pb({xy, i}), r = i;
    }
    v.pb({q, r});
    v.pb({r, p});
    return v;
}
#include "Bob.h"
#include "bits/stdc++.h"
#define ff first
#define ss second
#define pp pop_back
#define ll long long
#define pb push_back
#define ls(v) (int)v.size()
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define wr cout << "------------------------" << endl
using namespace std;

long long Bob(vector<pair<int,int>> v){
    int n = 5000;
    vector<int> deg(n + 1, 0), ch(n + 1, 0);
    for(auto [a, b] : v){
        if(!deg[a]) ch[a] = b;
        if(!deg[b]) ch[b] = a;
        deg[a] += 1;
        deg[b] += 1;
    }
    int p = -1, q;
    for(int i = 1;i<=n;++i){
        if(deg[i] <= 10) continue;
        if(~p) q = i;
        else p = i;
    }
    int x, y, xy;
    x = y = xy = -1;
    int pc = ch[p];
    if(pc <= 1666) x = p;
    else if(pc <= 3331) y = p;
    else xy = p;
    int qc = ch[q];
    if(qc <= 1666) x = q;
    else if(qc <= 3331) y = q;
    else xy = q;
    if(x == -1) x = (xy - y + n) % n;
    else if(y == -1) y = (xy - x + n) % n;
    return (x - 1) * n + y;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...