#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5, mod = 1e9 + 7;
int n, ans, cnt;
double a[N], mi[N], ma[N];
int main() {
    scanf("%d", &n);
    for(int i = 1; i <= n; i++) scanf("%lf", &a[i]);
    mi[n] = ma[n] = a[n];
    for(int i = n - 1; i >= 1; i--) {
        mi[i] = min(mi[i + 1], a[i]);
        ma[i] = max(ma[i + 1], a[i]);
    }
    double mx = -1e18;
    for(int i = 1; i <= n; i++) {
        if(ma[i] <= mx) cnt++;
        else mx = ma[i], ans++;
    }
    printf("%d ", ans);
    int res = 1;
    for(int i = 1; i <= cnt; i++) res = (res << 1) % mod;
    printf("%d\n", (res - 1 + mod) % mod);
    return 0;
}
``
# 「DTOI-1」混乱人魂## 题目背景 当屏幕前的你正在 AKIOI 的时候滑稽怪开始了他的旅行。## 题目描述有 $n$ 条线段第 $i$ 条线段连接坐标 $a_i$ 和坐标 $a_i+1$其中 $a_n+1 = 10^10^10$。小 P 不希望看到存在 $1 leq i neq j leq n$使得第 $i$ 条线段和第 $j$ 条线段相交但不包含。为了达成这个目标她可以选择将一些 $a

原文地址: https://www.cveoy.top/t/topic/dRtg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录