Pagini recente » Cod sursa (job #2663956) | Cod sursa (job #918641) | Cod sursa (job #1534486) | Cod sursa (job #755375) | Cod sursa (job #831866)
Cod sursa(job #831866)
#include <stdio.h>
#include <algorithm>
using namespace std;
int n, v[10001], v1[100001], v2[10001], p[10001], i, a, nr;
void adunare ()
{
int i;
for ( i = 1; i <= v1[0]; i ++ )
{
if ( v1[i] == n-1 )
{
v1[i] = 0;
}
else
break;
}
v1[i] ++;
if ( i > v1[0] )
{
v1[0] ++;
v1[i] = 0;
}
}
bool comparare ()
{
int i;
for ( i = 1; i <= v2[0]; i ++ )
{
if ( v2[i] != v1[i] )
return 1;
}
return 0;
}
int main ()
{
FILE *fis = fopen ("nextseq.in", "r");
fscanf(fis, "%d %d %d", &n, &v1[0], &v2[0]);
for ( i = 1; i <= n; i ++ )
fscanf(fis, "%d", &v[i]);
sort(v+1, v+n+1);
for (i = 1; i <= n; i ++ )
p[v[i]] = i - 1;
for ( i = v1[0]; i; i -- )
{
fscanf(fis, "%d", &a);
v1[i] = p[a];
}
for ( i = v2[0]; i; i -- )
{
fscanf(fis, "%d", &a);
v2[i] = p[a];
}
fclose(fis);
while ( comparare () )
{
adunare();
nr ++;
}
FILE *fis2 = fopen ("nextseq.out", "w");
fprintf(fis2, "%d\n", nr-1);
fclose(fis2);
return 0;
}