# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
495643 | Amer | Hedgehog Daniyar and Algorithms (IZhO19_sortbooks) | C++14 | 3041 ms | 83248 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include<map>
#include<vector>
using namespace std;
class mem
{
public:
int maxCombination = 0;
int maxNumber = 0;
int lastIndex = 0;
};
const int maxN = 1000005;
int arr[maxN];
map<int, vector<mem>> memorisation;
int solve(int start, int finish, int mood)
{
bool possible = true;
mem now;
now.lastIndex = finish;
now.maxNumber = arr[start - 1];
now.maxCombination = 0;
for (int i = start; i < finish; i++)
{
if (memorisation[i].size() != 0)
{
for (int j = 0; j < memorisation[i].size(); j++)
{
if (memorisation[i][j].lastIndex < finish)
{
if (memorisation[i][j].maxCombination > mood)
{
return false;
}
}
}
}
if (now.maxNumber > arr[i])
{
if (arr[i] + now.maxNumber > mood)
{
possible = false;
}
if (arr[i] + now.maxNumber > now.maxCombination)
{
now.maxCombination = arr[i] + now.maxNumber;
}
}
else
{
now.maxNumber = arr[i];
}
}
memorisation[start].push_back(now);
return possible;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
for (int i = 0; i < m; i++)
{
int start, finish, mood;
cin >> start >> finish >> mood;
cout << solve(start, finish, mood)<<endl;
}
}
/*
5 2
3 5 1 8 2
1 3 6
2 5 3
*/
Compilation message (stderr)
# | 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... |