ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#212098 | #3816. 元素 | huyu0911 | 0 | 0ms | 0kb | C++ | 1.5kb | 2024-10-13 11:11:33 | 2024-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