제출 #937563

#제출 시각아이디문제언어결과실행 시간메모리
937563danikoynov팀들 (IOI15_teams)C++14
34 / 100
4051 ms32784 KiB
#include "teams.h" #include <bits/stdc++.h> using namespace std; const int maxn = 5e5 + 10; struct segment { int l, r; segment(int _l = 0, int _r = 0) { l = _l; r = _r; } }; int n; segment s[maxn]; void init(int N, int A[], int B[]) { n = N; for (int i = 1; i <= n; i ++) s[i] = segment(A[i - 1], B[i - 1]); } struct event { int x, t, id; event(int _x = 0, int _t = 0, int _id = 0) { x = _x; t = _t; id = _id; } }; bool cmp_event(event e1, event e2) { if (e1.x != e2.x) return e1.x < e2.x; return e1.t < e2.t; } int can(int M, int K[]) { vector < event > events; for (int i = 0; i < M; i ++) { events.push_back(event(K[i], 0, -1)); } for (int i = 1; i <= n; i ++) { events.push_back(event(s[i].l, -1, i)); events.push_back(event(s[i].r, 1, i)); } sort(events.begin(), events.end(), cmp_event); set < pair < int, int > > act; for (event cur : events) { if (cur.t == -1) { act.insert({s[cur.id].r, cur.id}); } else if (cur.t == 1) { if (act.find({s[cur.id].r, cur.id}) != act.end()) act.erase({s[cur.id].r, cur.id}); } else { if (act.size() < cur.x) { return 0; } for (int d = 0; d < cur.x; d ++) act.erase(act.begin()); } } return 1; }

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

teams.cpp: In function 'int can(int, int*)':
teams.cpp:76:28: warning: comparison of integer expressions of different signedness: 'std::set<std::pair<int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   76 |             if (act.size() < cur.x)
      |                 ~~~~~~~~~~~^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...