Submission #1018932

#TimeUsernameProblemLanguageResultExecution timeMemory
1018932beaconmcFire (BOI24_fire)C++14
0 / 100
2097 ms11932 KiB
#include <bits/stdc++.h> typedef long long ll; #define FOR(i,x,y) for(ll i=x; i<y; i++) #define FORNEG(i,x,y) for(ll i=x; i>y; i--) using namespace std; vector<vector<ll>> normal; vector<vector<ll>> overlap; int solve(ll lo, ll hi){ ll ans = 0; ll cur = 0; while (lo < hi){ ll maxi = 0; while (cur < normal.size()){ if (normal[cur][0] > lo) break; maxi = max(maxi, normal[cur][1]); cur++; } if (maxi > lo) ans += 1, lo = maxi; else return -1; } return ans; } int main(){ ll n,m; cin >> n >> m; FOR(i,0,n){ ll a,b; cin >> a >> b; if (a<b) normal.push_back({a,b}); else overlap.push_back({b,a}); } sort(normal.begin(), normal.end()); ll ans = -1; //check twice ll left = 0, right = m; for (auto&i : overlap) left = max(left, i[0]), right = min(right, i[1]); if (solve(left, right) != -1) ans = solve(left, right)+2; for (auto&i : overlap){ ans = min( ans, (ll)solve(i[0], i[1]) + 1); } cout << ans; }

Compilation message (stderr)

Main.cpp: In function 'int solve(ll, ll)':
Main.cpp:18:14: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::vector<long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |   while (cur < normal.size()){
      |          ~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...