답안 #873325

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
873325 2023-11-14T20:29:17 Z StefanL2005 Gap (APIO16_gap) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
#define ll long long
 
ll findGap(int T, int N)
{
    vector<ll> v(N);
    ll maxDif = 0;

    if (T == 1)
    {
        int p1 = 0, p2 = N - 1;
        ll a = -1, b = 1LL * 1000 * 1000 * 1000 * 1000 * 1000 * 1000+ 1;
 
        while (p1 <= p2)
        {
            ll c1, c2;
            MinMax(a + 1, b - 1, &c1, &c2);
            v[p1] = c1;
            v[p2] = c2;
            p1++; p2--;
            a = c1; b = c2;
        }
 
        for (int i = 1; i < N; i++)
            maxDif = max(maxDif, v[i] - v[i - 1]);
    }
    else
    {
        ll start, finish;
        MinMax(0, 1LL * 1000 * 1000 * 1000 * 1000 * 1000 * 1000, &start, &finish);
        while (start != finish)
       { 
            ll p = 1;
            ll a, b;
            
            if (maxDif == 0)
            {
                MinMax(start + 1, start + 1 + p, &a, &b);
                while (b == -1)
                {
                    p*=2;
                    if (start + 1 + p >= finish)
                        MinMax(start + 1, finish, &a, &b);
                    else
                        MinMax(start + 1, start + 1 + maxDif + p, &a, &b);
                }

                maxDif = max(maxDif, a - start);
                start = b;
                continue;
            }

            ll p = maxDif * 2;
            MinMax(start + 1, start + p, &a, &b);
            while (b == -1)
            {
                p*=2;
                if (start + p >= finish)
                    MinMax(start + 1, finish, &a, &b);
                else
                    MinMax(start + 1, start + p, &a, &b);
            }

            maxDif = max(maxDif, a - start);
            start = b;
        }
    }
    return maxDif;
}

Compilation message

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:55:16: error: redeclaration of 'long long int p'
   55 |             ll p = maxDif * 2;
      |                ^
gap.cpp:35:16: note: 'long long int p' previously declared here
   35 |             ll p = 1;
      |                ^