题目大意: 给出两个数组A B
问 A B 共有的连续子集有多少个 这种连续子集可以是不定排列的 但是必须是连续的
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<cstring>
#include<string.h>
using namespace std;
int a[3005];
int b[3005];
int c[3005];
int cona[3005];
int conb[3005];
int ans,n,len;
int main(){
while (cin>>n&&n){
for (int i = 0; i<n; i++)
cin >> a[i];
for (int i = 0; i<n; i++){
cin >> b[i];
c[b[i]] = i;
}
//for (int i = 0; i <=n+1; i++)
// cout << c[i] << " ";
//seara();
ans = 0;
for (int i = 0; i < n; i++){
int max = c[a[i]], min = c[a[i]];
int num = 1;
for (int j = i + 1; j < n; j++){
if (c[a[j]] < min)
min = c[a[j]];
if (c[a[j]]>max)
max = c[a[j]];
num++;
if (max - min + 1 == num)
ans++;
}
}
cout << ans << endl;
}
return 0;
}