Submission #1284816

#TimeUsernameProblemLanguageResultExecution timeMemory
1284816Faisal_SaqibIsland Hopping (JOI24_island)C++20
15 / 100
230 ms984 KiB
#include "island.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=500;
vector<int> qry[N];
void solve(int n, int l)
{
  for(int i=1;i<=n;i++)
  {
    qry[i].clear();
    for(int k=1;k<=n-1;k++)
    {
      qry[i].push_back(query(i,k));
    }
  }
  // neighbour of a vertex are a prefix of it qry vector
  // grand childeren are subarray
  // same goes on 
  // level-wise of tree when root is i is equal to qry[i]
  set<pair<int,int>> edge;
  for(int i=1;i<=n;i++)
  {
    set<ll> cur;
    for(auto j:qry[i])
    {
      if(cur.find(j)!=cur.end())
      {
        break; // grandchild reached
      }
      if(i<j)
      {
        edge.insert({i,j});
      }
      else
      {
        edge.insert({j,i});
      }
      for(auto k:qry[j])
      {
        if(k!=i)
        {
          cur.insert(k);
          break;
        }
      }
    }
  }
  if(edge.size()<(n-1))
  {
    exit(-1);
  }
  for(auto x:edge)
  {
    answer(x.first,x.second);
  }
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...