#13wa了,求调,真的非常感谢
查看原帖
#13wa了,求调,真的非常感谢
1112952
Au_Gold楼主2024/9/5 17:00
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
const ll N = 1e2, M = 1e5, mod = 7;
ll n, q, a[N], ind[N];

void solve01()
{
    cin >> n;
    for (ll i = 1; i <= n; i++)
    {
        cin >> a[i];
        if (a[i] != a[i - 1])
            ind[i] = i;
        else
        {
            ind[i] = ind[i - 1]; // ind 存连续相同的数的第一个索引
        }
    }
    cin >> q;
    ll l, r;
    while (q--)
    {
        cin >> l >> r;
        if (ind[l] == ind[r]) // 如果ind[l] == ind[r] 说明l到r都是相同的,中间没有别的数
            cout << -1 << " " << -1 << endl;
        else
        {
            if (a[l] == a[r]) // 如果a[l] == a[r], 那么是不是存在 a[l] != a[ ind[r] -1 ]  ?
                r = ind[r] - 1;
            cout << l << " " << r << endl;
        }
    }
}
int main()
{
    ll t = 1;
    cin >> t;
    while (t--)
    {
        solve01();
        cout << endl;
    }

    return 0;
}



2024/9/5 17:00
加载中...