제출 #328159

#제출 시각아이디문제언어결과실행 시간메모리
328159couplefireGap (APIO16_gap)C++17
30 / 100
64 ms3144 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std; long long solve1(int n){ queue<long long> left; stack<long long> right; long long cl = 0, cr = 1000000000000000000; while(left.size()+right.size() < n){ long long a, b; MinMax(cl, cr, &a, &b); left.push(a); right.push(b); cr = b-1, cl = a+1; } vector<long long> v; while(!left.empty()){ v.push_back(left.front()); left.pop(); } while(!right.empty()){ v.push_back(right.top()); right.pop(); } long long ans = 0; for(int i = 1; i<v.size(); i++) ans = max(ans, v[i]-v[i-1]); return ans; } long long solve2(int n){ long long left, right; MinMax(0, 1000000000000000000, &left, &right); long long gap = (right-left+n-2)/(n-1); if(right - left == 1ll*(n-1)) return 1; gap--; long long prev = left; long long cur = left+1; long long ans = 0; while(cur<right){ long long cl, cr; MinMax(cur, cur+gap, &cl, &cr); ans = max(ans, cl-prev); ans = max(ans, cr-cl); prev = cr; cur += gap+1; } return ans; } long long findGap(int T, int N){ if(T == 1) return solve1(N); return solve2(N); }

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

gap.cpp: In function 'long long int solve1(int)':
gap.cpp:8:33: warning: comparison of integer expressions of different signedness: 'std::queue<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
    8 |  while(left.size()+right.size() < n){
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
gap.cpp:24:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |  for(int i = 1; i<v.size(); i++) ans = max(ans, v[i]-v[i-1]);
      |                 ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...