이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <stdio.h>
#include <queue>
#include <vector>
#include <set>
using namespace std;
int main()
{
int n, t;
cin >> n >> t;
int prevans = 0;
vector<pair<int, int> > seg;
while (n--)
{
int type, l, r, k, id;
cin >> type;
if (type == 1)
{
cin >> l >> r;
l = (l ^ (t * prevans));
r = (r ^ (t * prevans));
if (l > r) swap(l, r);
seg.push_back(make_pair(l, r));
}
else if (type == 2)
{
cin >> id;
seg[id - 1] = make_pair(-1, -1);
}
else if (type==3)
{
cin >> l >> r >> k;
l = (l ^ (t * prevans));
r = (r ^ (t * prevans));
if (l > r) swap(l, r);
int ans = 0;
for (auto p: seg)
if (p.first != -1)
++ans;
for (auto p: seg)
if (p.second - p.first < k - 1)
--ans;
for (auto p: seg)
if (p.first != -1 && p.second - p.first >= k - 1 && p.second - l < k - 1)
--ans;
for (auto p: seg)
if (p.first != -1 && p.second - p.first >= k - 1 && r - p.first < k - 1)
--ans;
cout << ans << '\n';
#ifdef MANSON
cout << flush;
#endif // MANSON
prevans = ans;
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |