#include #include using namespace std; void update(int &bx, int &by, int x, int y) { if (y-x >= by-bx) bx=x, by=y; } int main() { int best_x=-1, best_y=-1; int N; cin >> N; map last_seen; // Zarážky, které nikdy nevytvoří dobré řešení: last_seen[ -(1<<30) ] = last_seen[ 1<<30 ] = N; for (int y=0; y> t; auto geq = last_seen.lower_bound(t); update(best_x, best_y, geq->second, y); auto leq = last_seen.upper_bound(t); --leq; update(best_x, best_y, leq->second, y); last_seen[t]=y; } cout << best_x << " " << best_y << endl; return 0; }