# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1157683 | vicvic | Towers (NOI22_towers) | C++20 | 429 ms | 123524 KiB |
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int NMAX=1e6;
int n;
int x[NMAX+5], y[NMAX+5], indx[NMAX+5], indy[NMAX+5];
vector <int> xs[NMAX+5], ys[NMAX+5];
int top[NMAX+5], bottom[NMAX+5], min_line[NMAX+5], max_line[NMAX+5];
vector <int> try_again;
void add_point (int ind, bool type)
{
if (type)
top[ind]=1;
else bottom[ind]=1;
int &mn=min_line[y[ind]];
int &mx=max_line[y[ind]];
if (mn==-1)
{
mn=mx=ind;
}
else
{
if (x[mn]>x[ind])
{
if (mx!=mn) try_again.push_back (mn);
mn=ind;
}
if (x[mx]<x[ind])
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |