Pagini recente » Cod sursa (job #2338562) | Cod sursa (job #1352806) | Cod sursa (job #2125706) | Cod sursa (job #811913) | Cod sursa (job #1415841)
#include<fstream>
#include<algorithm>
using namespace std;
int n, m, p, i, nr, c, st, dr, mid, x, ok;
int a[10001], b[10001], v[10001];
ifstream fin("nextseq.in");
ofstream fout("nextseq.out");
void adunare(){
int i = 1;
while(a[i] == n){
a[i] = 1;
i++;
}
a[i]++;
if(i > m){
m = i;
}
}
int compar(){
if(p > m){
return 1;
}
if(m > p){
return 0;
}
for(i = m; i >= 1; i--){
if(a[i] < b[i]){
return 1;
}
if(a[i] > b[i]){
return 0;
}
}
return 0;
}
int main(){
fin>> n >> m >> p;
for(i = 1; i <= n; i++){
fin>> v[i];
}
sort(v + 1, v + n + 1);
for(i = m; i >= 1; i--){
fin>> x;
st = 1;
dr = n;
while(st <= dr){
mid = (st + dr) / 2;
if(v[mid] == x){
break;
}
else{
if(v[mid] < x){
st = mid + 1;
}
else{
dr = mid - 1;
}
}
}
a[i] = mid;
}
for(i = p; i >= 1; i--){
fin>> x;
st = 1;
dr = n;
while(st <= dr){
mid = (st + dr) / 2;
if(v[mid] == x){
break;
}
else{
if(v[mid] < x){
st = mid + 1;
}
else{
dr = mid - 1;
}
}
}
b[i] = mid;
}
ok = 1;
nr = 0;
while(ok){
nr++;
adunare();
ok = compar();
}
fout<< nr - 1 <<"\n";
return 0;
}