제출 #462302

#제출 시각아이디문제언어결과실행 시간메모리
462302bigoFountain (eJOI20_fountain)C++14
30 / 100
418 ms7300 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long typedef pair<int, int> pii; int main() { int n, q; cin >> n >> q; vector<pii>vec(n); ll sum = 0; for (int i = 0; i < n; i++) { cin >> vec[i].first >> vec[i].second; sum += vec[i].second; } n++; sum += 1e9; vec.push_back({ 1e9,1e9 }); vector<int>sef(n+1); sef[n] = 0; for (int i = 0; i < n; i++) { sef[n - 1 - i] = sef[n - i] + vec[n - 1 - i].second; } vector<int>pref(n); pref[0] = vec[0].second; for (int i = 1; i < n; i++) { pref[i] = pref[i - 1] + vec[i].second; } vector<int>ans1; while (q--) { int r, c; cin >> r >> c; r--; int lo = r; int hi = n - 1; int mid; if (r == 0) { while (lo < hi) { mid = (lo + hi) / 2; if ((sum - sef[mid+1]) < c) { lo = mid + 1; } else if (c == (sum - sef[mid+1])) break; else { hi = mid; } } if ((sum - sef[mid + 1]) < c) mid++; } else { while (lo < hi) { mid = (lo + hi) / 2; if ((sum - pref[r - 1] - sef[mid+1]) < c) { lo = mid + 1; } else if (c == (sum - pref[r - 1] - sef[mid+1])) break; else { hi = mid; } } if ((sum - pref[r - 1] - sef[mid + 1]) < c) mid++; } if (mid == n - 1) mid = -1; ans1.push_back(mid+1); } for (int i = 0; i < ans1.size(); i++) { cout << ans1[i] << endl; } }

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

fountain.cpp: In function 'int main()':
fountain.cpp:69:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |  for (int i = 0; i < ans1.size(); i++) {
      |                  ~~^~~~~~~~~~~~~
fountain.cpp:47:23: warning: 'mid' may be used uninitialized in this function [-Wmaybe-uninitialized]
   47 |    if ((sum - sef[mid + 1]) < c)
      |                   ~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...