Submission #704307

#TimeUsernameProblemLanguageResultExecution timeMemory
704307Hiennoob123Park (JOI17_park)C++14
10 / 100
10 ms348 KiB
#include "park.h" #include <bits/stdc++.h> #define ll int #define ld long double #define pll pair<ll,ll> #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; const ll maxn = 1405; static int Place[1400]; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ll random(ll l ,ll r) { ll x = rng(); return (abs(x)%(r-l+1)+l); } ll t, n; vector<pll> Edge; ll par[maxn]; ll find_par(ll v) { if(v==par[v]) return v; else return par[v] = find_par(par[v]); } bool mid(ll a, ll b, ll c) { if(a>c) swap(a, c); //cout << a << " " << b << " " << c << "\n"; for(int i = 0; i< n; i++) Place[i] = 1; Place[b] = 0; return !Ask(a, c, Place); } bool adj(ll a, ll b) { if(a>b) swap(a, b); //cout << a << " " << b << "\n"; for(int i = 0; i< n; i++) Place[i] = 0; Place[a] = Place[b] = 1; return Ask(a, b, Place); } void Answ() { for(auto u: Edge) { if(u.fi>u.se) swap(u.fi, u.se); //cout << u.fi << " " << u.se << "\n"; Answer(u.fi, u.se); } } namespace task1 { void solve() { for(int i = 0; i< n; i++) { for(int j = i+1; j< n; j++) { if(adj(i, j)) Edge.push_back(mp(i, j)); } } Answ(); } } namespace task2 { } void Detect(int xaa, int xa) { t = xaa; n = xa; if(t==1) task1::solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...