답안 #1055794

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1055794 2024-08-13T05:31:04 Z thieunguyenhuy Gap (APIO16_gap) C++17
컴파일 오류
0 ms 0 KB
#ifndef hwe
	#include "gap.h"
#endif

#include <bits/stdc++.h>
using namespace std;

#define popcount(n) (__builtin_popcountll((n)))
#define clz(n) (__builtin_clzll((n)))
#define ctz(n) (__builtin_ctzll((n)))
#define lg(n) (63 - __builtin_clzll((n)))
#define BIT(n, i) (((n) >> (i)) & 1ll)
#define MASK(i) (1ll << (i))
#define FLIP(n, i) ((n) ^ (1ll << (i)))
#define ON(n, i) ((n) | MASK(i))
#define OFF(n, i) ((n) & ~MASK(i))

#define Int __int128
#define fi first
#define se second

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<long long, long long> pll;
typedef pair<long long, int> pli;
typedef pair<int, long long> pil;
typedef vector<pair<int, int>> vii;
typedef vector<pair<long long, long long>> vll;
typedef vector<pair<long long, int>> vli;
typedef vector<pair<int, long long>> vil;

template <class T1, class T2>
bool maximize(T1 &x, T2 y) {
    if (x < y) {
        x = y;
        return true;
    }
    return false;
}
template <class T1, class T2>
bool minimize(T1 &x, T2 y) {
    if (x > y) {
        x = y;
        return true;
    }
    return false;
}

template <class T>
void remove_duplicate(vector<T> &ve) {
    sort (ve.begin(), ve.end());
    ve.resize(unique(ve.begin(), ve.end()) - ve.begin());
}

mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
template <class T> T random(T l, T r) {
    return uniform_int_distribution<T>(l, r)(rng);
}
template <class T> T random(T r) {
    return rng() % r;
}

const int N = 1e6 + 5;
const int MOD = 1e9 + 7;
const int inf = 1e9;
const ll INF = 1e18;

#ifdef hwe
void MinMax(ll s, ll t, ll &mn, ll &mx) {}
#endif

int findGap(int t, int n) {
	ll mi = -1, ma = -1;
	MinMax(0, INF, mi, ma);

	ll L = ma - mi, block_size = ceil(1.0 * (L + n - 1) / (n - 1));

	ll last_max = -1, ans = -INF;
	for (ll i = mi; i <= ma; i += block_size) {
		ll mn = -1, mx = -1;
		MinMax(i, min(i + block_size - 1, ma), mn, mx);
		if (mn != -1 && last_max != -1) maximize(ans, mi - last_max);
		if (mx != -1) last_max = mx;
	}

	return ans;
}

#ifdef hwe
signed main() {



    cerr << '\n'; return 0;
}
#endif

Compilation message

gap.cpp: In function 'int findGap(int, int)':
gap.cpp:76:17: error: invalid conversion from 'll' {aka 'long long int'} to 'long long int*' [-fpermissive]
   76 |  MinMax(0, INF, mi, ma);
      |                 ^~
      |                 |
      |                 ll {aka long long int}
In file included from gap.cpp:2:
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:76:21: error: invalid conversion from 'll' {aka 'long long int'} to 'long long int*' [-fpermissive]
   76 |  MinMax(0, INF, mi, ma);
      |                     ^~
      |                     |
      |                     ll {aka long long int}
In file included from gap.cpp:2:
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:83:42: error: invalid conversion from 'll' {aka 'long long int'} to 'long long int*' [-fpermissive]
   83 |   MinMax(i, min(i + block_size - 1, ma), mn, mx);
      |                                          ^~
      |                                          |
      |                                          ll {aka long long int}
In file included from gap.cpp:2:
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:83:46: error: invalid conversion from 'll' {aka 'long long int'} to 'long long int*' [-fpermissive]
   83 |   MinMax(i, min(i + block_size - 1, ma), mn, mx);
      |                                              ^~
      |                                              |
      |                                              ll {aka long long int}
In file included from gap.cpp:2:
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*);
      |                                               ^~~~~~~~~~