社区讨论

90分tle求调!

P1638逛画展参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mdb6okm1
此快照首次捕获于
2025/07/20 12:35
8 个月前
此快照最后确认于
2025/11/04 04:04
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>

using namespace std;
constexpr int N = 1e6 + 7;
int a[N], n, m;
bool flag;
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    if (n == m)
        cout << "1 " << n;
    int l = INT_MAX, r, minn = INT_MAX;
    for (int i = 1, j; i <= n; i++)
    {
        bool vis[2007] = {0};
        j = i;
        int cnt = 0, tot = 0;
        while (j <= n && cnt < m)
        {
            tot++;
            if (tot > minn)
                break;
            if (vis[a[j]])
            {
                j++;
                continue;
            }
            vis[a[j]] = 1;
            cnt++;
            j++;
        }
        // cout << i << ' ' << j << endl;
        if (cnt == m)
        {
            if (tot == m && !flag)
            {
                l = i, r = j - 1;
                break;
            }
            if (tot < minn)
            {
                minn = tot;
                l = i, r = j - 1;
            }
            else if (tot == minn)
            {
                if (i < l)
                {
                    l = i, r = j - 1;
                }
            }
        }
    }
    cout << l << ' ' << r;
    return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...