Submission #1131379

#TimeUsernameProblemLanguageResultExecution timeMemory
1131379Champ_NamanSwapping Cities (APIO20_swap)C++20
6 / 100
89 ms11436 KiB
#include<bits/stdc++.h>
using namespace std;
#define nl '\n'
#include "swap.h"

class spt{
   public:
   vector<vector<int>> m;

   int func(int x, int y){ //to be changed
      return max(x, y);
   }

   void sptini(vector<int>& v){
      int n = v.size();
      int lg = log2(n);
      m.resize(n, vector<int>(lg+1));
      for(int i=0; i<n; i++) m[i][0] = v[i];

      for(int k=1; k<=lg; k++){
		   for(int i=0; i+(1<<k)-1 < n; i++) {
			   m[i][k] = func(m[i][k-1], m[i+(1<<(k-1))][k-1]);
		   }
	   }
   }

   int qo1(int l, int r){
      if(l > r) return 0;
      int k = log2(r-l+1);
      return func(m[l][k], m[r-(1<<k)+1][k]);
   }

   int qlogn(int l, int r){
      int k = log2(r-l+1);
      int ans = 0;
      for(int j=k; j>=0; j--) {
         if((1 << j) <= r-l+1){ 
            ans = func(ans, m[l][j]);        
            l += (1<<j);              
         }
      }
      return ans;
   }
};

const int N = 1e5;
vector<pair<int,int>> g[N];

int ans;

void init(int n, int m, vector<int> u, vector<int> v, vector<int> w){
   for(int i=0; i<m; i++){
      g[u[i]].push_back({v[i], w[i]});
      g[v[i]].push_back({u[i], w[i]});
      ans = max(ans, w[i]);
   }

   if(m == n-1){
      ans = -1;
      return;
   }
   return;
}

int getMinimumFuelCapacity(int x, int y){
   return ans;
}
#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...