Submission #1319579

#TimeUsernameProblemLanguageResultExecution timeMemory
1319579muhammad-ahmadEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
7 ms480 KiB
#include "grader.h"
#include <iostream>
#include <cmath>
#include <algorithm>
#include <map>
#include <vector>
#include <iomanip>
#include <string>
#include <queue>
#include <set>
#include <deque>
#include <numeric>
#include <stack>
#include <chrono>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

void fast_io() {
	// freopen("", "r", stdin);
	// freopen("", "w", stdout);
	// ios::sync_with_stdio(0);
	// cin.tie();
	// cout.tie();
	cout << setprecision(9);
}

// #define int long long
// #define endl '\n'
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define fi first
#define se second
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>

// int X;
// 
// bool query(vector<int> &a){
	// for (auto i : a) if (i == X) return 1;
	// return 0;
// }

const int N = 513;

int t, val[N];
vector<int> adj[N];

void dfs(int u = 1, int par = 1){
	val[++t] = u;
	for (auto v : adj[u]){
		if (v == par) continue;
		dfs(v, u);
	}
}

int findEgg(int n, vector<pair<int, int>> bridges){
	for (int i = 1; i <= n; i++) adj[i].clear();
	t = 0;
	for (auto [u, v] : bridges){
		adj[u].push_back(v);
		adj[v].push_back(u);
	}
	dfs();
	
	int l = 0, r = n;
	while (r - l > 1){
		int mid = (l + r) / 2;
		vector<int> Q;
		for (int i = 1; i <= mid; i++) Q.push_back(val[i]);
		bool x = query(Q);
		if (x) r = mid;
		else l = mid;
	}
	
	return val[r];
}

// void solve() {
// 	
// }
// 
// signed main() {
	// fast_io();
	// srand(chrono::steady_clock::now().time_since_epoch().count());
	// X = 5;
	// cout << findEgg(8, {{1,2}, {1,3}, {2, 4}, {2, 5}, {3, 6}, {3, 7}, {6, 8}}) << endl;
	// return 0;
// }


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...