UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#212098#3816. 元素huyu091100ms0kbC++1.5kb2024-10-13 11:11:332024-10-13 12:22:33

answer

#include <iostream>
#include <cstring>
#define MAXN 2005

using namespace std;

int n, q, l, r;
int a[MAXN];

bool A(int h[], int b[]){

    /*for(int i = 0; i <= 20; i++){
        cout << h[i] << ' ';
    }
    cout << "-------------";
    for(int i = 0; i <= 20; i++){
        cout << b[i] << ' ';
    }
    cout << "---------------";

    cout << endl ;*/

    for(int i = 0; i <= 20; i++){
        if(h[i] > 0 && b[i] == 0)return 0;
    }
    return 1;
}

int main(){
    cin >> n >> q;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
    }
    for(int i = 1; i <= q; i++){
        int h[MAXN], b[MAXN];
        memset(h, 0, sizeof(h));
        memset(b, 0, sizeof(b));
        int ans = MAXN;
        cin >> l >> r;
        for(int j = l; j <= r; j++){
            h[a[j]]++;
        }
        b[a[l]]++;
        int x = l, y = l;
        //cout << 666;
        while(x <= r && y <= r){
            while(A(h, b) == 0 && y <= r){
                y++;
                b[a[y]]++;
            }

            if(A(h, b)){
                //cout << 666;
                ans = min(ans, y - x + 1);
            }
            //cout << 777;
            while(A(h, b) && x <= y){
                b[a[x]]--;
                x++;
                if(A(h, b)){
                    //cout << 666;
                    ans = min(ans, y - x + 1);
                }
            }

        }
        cout << ans << endl;
    }
    return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 0
Time Limit Exceeded

input:

10 10
492 1887 1028 1209 252 1860 1527 699 1656 928
6 9
2 8
3 10
2 3
1 8
6 9
3 5
4 7
1 4
2 7

output:


result:


Test #2:

score: 0
Time Limit Exceeded

input:

50 50
413 1208 1780 279 1403 1706 11 1583 333 355 1068 1270 1835 1042 957 423 1140 1153 1709 284 281...

output:


result:


Test #3:

score: 0
Time Limit Exceeded

input:

50 50
407 1089 1459 1626 1917 555 1611 492 443 1149 406 1259 1729 1554 577 1310 1899 1578 1005 1459 ...

output:


result:


Test #4:

score: 0
Time Limit Exceeded

input:

50 50
1792 843 1272 547 698 1086 1174 1607 1277 1055 506 881 1445 372 1076 1770 647 1086 320 1912 18...

output:


result:


Test #5:

score: 0
Time Limit Exceeded

input:

50 50
44 1463 245 1177 1728 1335 768 475 790 623 1466 98 672 230 339 1428 872 1905 405 1260 1503 813...

output:


result:


Test #6:

score: 0
Time Limit Exceeded

input:

50 50
695 974 1078 231 500 498 1308 1666 1925 766 1994 1776 1955 1766 1191 1021 1581 1202 615 1230 1...

output:


result:


Test #7:

score: 0
Time Limit Exceeded

input:

200 200
403 329 389 1103 695 1865 818 671 750 1868 1422 422 1186 1431 172 1569 460 1580 406 1049 138...

output:

1
1

result:


Test #8:

score: 0
Time Limit Exceeded

input:

200 200
147 1386 1788 1493 1919 1136 861 871 1895 1006 1776 346 381 1666 296 289 568 1616 1535 531 2...

output:


result:


Test #9:

score: 0
Time Limit Exceeded

input:

2000 2000
1154 852 1088 1530 639 1318 1250 1222 1341 1070 205 656 903 1491 808 317 756 1962 102 1445...

output:

621
288
1080

result:


Test #10:

score: 0
Time Limit Exceeded

input:

2000 2000
1232 731 1651 991 1681 1739 776 240 829 1337 493 248 214 1852 716 325 1280 1207 380 724 11...

output:

856
1075
1272
1075
320
223
715
1075
951
1
856
78
83
1
483
633
759

result: