Submission #849506

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
8495062023-09-14 19:09:53popovicirobertStreet Lamps (APIO19_street_lamps)C++14
20 / 100
1469 ms524288 KiB
#include <bits/stdc++.h>
#define lsb(x) (x & (-x))
using ull = unsigned long long;
using ll = long long;
using namespace std;
namespace Containers {
struct Segment {
long long l, r;
bool operator<(const Segment& rhs) const noexcept {
if (l == rhs.l) return r < rhs.r;
return l < rhs.l;
}
};
class DisjointSegmentContainer : public multiset<Segment> {
public:
vector<Segment> Add(Segment segm) {
auto intersecting = GetIntersecting(segm);
ll new_l = segm.l;
ll new_r = segm.r;
for (auto s : intersecting) {
new_l = min(new_l, s.l);
new_r = max(new_r, s.r);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

street_lamps.cpp: In function 'int main()':
street_lamps.cpp:461:36: warning: narrowing conversion of 's.std::pair<long long int, long long int>::first' from 'long long int' to 'int' [-Wnarrowing]
  461 |         st.set(Space2D::Update2D{s.first, s.second, s.first, s.second}, 0);
      |                                  ~~^~~~~
street_lamps.cpp:461:45: warning: narrowing conversion of 's.std::pair<long long int, long long int>::second' from 'long long int' to 'int' [-Wnarrowing]
  461 |         st.set(Space2D::Update2D{s.first, s.second, s.first, s.second}, 0);
      |                                           ~~^~~~~~
street_lamps.cpp:461:55: warning: narrowing conversion of 's.std::pair<long long int, long long int>::first' from 'long long int' to 'int' [-Wnarrowing]
  461 |         st.set(Space2D::Update2D{s.first, s.second, s.first, s.second}, 0);
      |                                                     ~~^~~~~
street_lamps.cpp:461:64: warning: narrowing conversion of 's.std::pair<long long int, long long int>::second' from 'long long int' to 'int' [-Wnarrowing]
  461 |         st.set(Space2D::Update2D{s.first, s.second, s.first, s.second}, 0);
      |                                                              ~~^~~~~~
street_lamps.cpp: In lambda function:
street_lamps.cpp:504:30: warning: narrowing conversion of 'segm.Containers::Segment::l' from 'long long int' to 'int' [-Wnarrowing]
  504 |                 st.set({segm.l, segm.r, segm.l, segm.r}, -1);
      |                         ~~~~~^
street_lamps.cpp:504:38: warning: narrowing conversion of 'segm.Containers::Segment::r' from 'long long int' to 'int' [-Wnarrowing]
  504 |                 st.set({segm.l, segm.r, segm.l, segm.r}, -1);
      |                                 ~~~~~^
street_lamps.cpp:504:46: warning: narrowing conversion of 'segm.Containers::Segment::l' from 'long long int' to 'int' [-Wnarrowing]
  504 |                 st.set({segm.l, segm.r, segm.l, segm.r}, -1);
      |                                         ~~~~~^
street_lamps.cpp:504:54: warning: narrowing conversion of 'segm.Containers::Segment::r' from 'long long int' to 'int' [-Wnarrowing]
  504 |                 st.set({segm.l, segm.r, segm.l, segm.r}, -1);
      |                                                 ~~~~~^
street_lamps.cpp: In lambda function:
street_lamps.cpp:509:30: warning: narrowing conversion of 'segm.Containers::Segment::l' from 'long long int' to 'int' [-Wnarrowing]
  509 |                 st.set({segm.l, segm.r, segm.l, segm.r}, qq);
      |                         ~~~~~^
street_lamps.cpp:509:38: warning: narrowing conversion of 'segm.Containers::Segment::r' from 'long long int' to 'int' [-Wnarrowing]
  509 |                 st.set({segm.l, segm.r, segm.l, segm.r}, qq);
      |                                 ~~~~~^
street_lamps.cpp:509:46: warning: narrowing conversion of 'segm.Containers::Segment::l' from 'long long int' to 'int' [-Wnarrowing]
  509 |                 st.set({segm.l, segm.r, segm.l, segm.r}, qq);
      |                                         ~~~~~^
street_lamps.cpp:509:54: warning: narrowing conversion of 'segm.Containers::Segment::r' from 'long long int' to 'int' [-Wnarrowing]
  509 |                 st.set({segm.l, segm.r, segm.l, segm.r}, qq);
      |                                                 ~~~~~^
#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...