제출 #750837

#제출 시각아이디문제언어결과실행 시간메모리
750837PoPularPlusPlusGap (APIO16_gap)C++17
100 / 100
64 ms2268 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define pb(e) push_back(e) #define sv(a) sort(a.begin(),a.end()) #define sa(a,n) sort(a,a+n) #define mp(a,b) make_pair(a,b) #define vf first #define vs second #define ar array #define all(x) x.begin(),x.end() long long findGap(int t, int n) { if(t == 1){ ll arr[n]; memset(arr,0,sizeof arr); ll l = 0 , r = 1000000000000000000; int i = 0 , j = n - 1; while(i <= j){ MinMax(l , r , &arr[i] , &arr[j]); assert(arr[i] != -1); assert(arr[j] != -1); l = arr[i]+1; r = arr[j]-1; i++; j--; } ll ans = 0; for(i = 0; i < n-1; i++){ ans = max(ans , arr[i+1]-arr[i]); } return ans; } vector<ll> v; ll mn , mx; MinMax(0,1e18,&mn,&mx); if(n == 2)return mx - mn; v.pb(mn); ll range = (mx - 1) - (mn + 1) + 1; ll div = range/(n-1); ll rem = range % (n - 1); ll cur = mn+1; for(ll i = 0; i < n - 1; i++){ ll add = 0; if(rem < i)add = 1; ll x , y; ll r = cur + div + add - 1; MinMax(cur , r , &x , &y); if(x != -1){ v.pb(x); if(x != y)v.pb(y); } cur = r + 1; } v.pb(mx); ll ans = 0; for(int i = 0; i < v.size()-1; i++){ ans = max(ans , v[i+1]-v[i]); } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:60:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |  for(int i = 0; i < v.size()-1; i++){
      |                 ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...