Pagini recente » Cod sursa (job #2172691) | Cod sursa (job #1143312) | Cod sursa (job #1285186) | Cod sursa (job #1190487) | Cod sursa (job #1799887)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nextseq.in");
ofstream fout("nextseq.out");
const int MAXN = 10005;
int n, l1, l2;
int v[MAXN];
int a[MAXN], b[MAXN];
int main() {
fin >> n >> l1 >> l2;
for (int i = 1; i <= n; ++i) {
int k;
fin >> k;
v[k] = 1;
}
int k = 0;
for (int i = 0; i <= MAXN - 5; ++i) {
if (v[i] == 1) {
k++;
v[i] = k;
}
}
for (int i = 1; i <= l1; ++i) {
fin >> k;
a[i] = v[k];
}
for (int i = 1; i <= l2; ++i) {
fin >> k;
b[i] = v[k];
}
for (int i = 1; i <= l1 / 2; ++i) {
swap(a[i], a[l1 - i + 1]);
}
for (int i = 1; i <= l2 / 2; ++i) {
swap(b[i], b[l2 - i + 1]);
}
int var = 1;
int sol = 0;
while (var == 1) {
a[1]++;
for (int i = 1; i <= l1; ++i) {
if (a[i] > n) {
a[i + 1]++;
a[i] = 1;
}
else {
i = l1 + 10;
}
}
if (a[l1 + 1] > 0) {
l1++;
}
if (l1 == l2) {
var = 0;
for (int i = 1; i <= l1; ++i) {
if (a[i] != b[i]) {
var = 1;
i = l1 + 10;
}
}
}
sol += var;
}
fout << sol;
fout.close();
return 0;
}