Submission #882360

# Submission time Handle Problem Language Result Execution time Memory
882360 2023-12-03T05:28:07 Z dubabuba Gap (APIO16_gap) C++14
Compilation error
0 ms 0 KB
#include "gap.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
#define ff first
#define ss second

struct node {
	node *LC, *RC;
	ll tl, tr;
	ll mn, mx;
	ll ans;

	node(ll l, ll r) {
		ans = -1;
		tl = l, tr = r;
		MinMax(l, r, mn, mx);
	}

	bool birth() {
		if(tl == tr) return 0;
		if(mn == mx) return 0;
		LC = new node(tl, (tl + tr) / 2);
		rC = new node((tl + tr) / 2 + 1, tr);
		return 1;
	}

	ll merge(node *L, node *R) {
		ll ret = max(L-> ans, R-> ans);
		if(L-> mx == -1) return ret;
		if(R-> mx == -1) return ret;
		if(L-> mx == R.mn) return ret;
		return max(R-> mn - L-> mx, ret);
	}

	void build() {
		if(tl == tr) return;
		if(mn == mx) return;

		LC-> build();
		RC-> build();
		ans = merge(LC, RC);
	}
};

ll findGap(int T, int N) {
	node *root = new node(1LL, N);
	return root-> ans;
}

Compilation message

gap.cpp: In constructor 'node::node(ll, ll)':
gap.cpp:20:16: error: invalid conversion from 'll' {aka 'long long int'} to 'long long int*' [-fpermissive]
   20 |   MinMax(l, r, mn, mx);
      |                ^~
      |                |
      |                ll {aka long long int}
In file included from gap.cpp:1:
gap.h:1:35: note:   initializing argument 3 of 'void MinMax(long long int, long long int, long long int*, long long int*)'
    1 | void MinMax(long long, long long, long long*, long long*);
      |                                   ^~~~~~~~~~
gap.cpp:20:20: error: invalid conversion from 'll' {aka 'long long int'} to 'long long int*' [-fpermissive]
   20 |   MinMax(l, r, mn, mx);
      |                    ^~
      |                    |
      |                    ll {aka long long int}
In file included from gap.cpp:1:
gap.h:1:47: note:   initializing argument 4 of 'void MinMax(long long int, long long int, long long int*, long long int*)'
    1 | void MinMax(long long, long long, long long*, long long*);
      |                                               ^~~~~~~~~~
gap.cpp: In member function 'bool node::birth()':
gap.cpp:27:3: error: 'rC' was not declared in this scope; did you mean 'LC'?
   27 |   rC = new node((tl + tr) / 2 + 1, tr);
      |   ^~
      |   LC
gap.cpp: In member function 'll node::merge(node*, node*)':
gap.cpp:35:18: error: request for member 'mn' in 'R', which is of pointer type 'node*' (maybe you meant to use '->' ?)
   35 |   if(L-> mx == R.mn) return ret;
      |                  ^~