CF Round648 div2 C
代码太妙了,我直接复制了别人的来
因为转载要链接,就发原创了,但是代码不是我写的
ans是第几圈,ji很好看出来是位置
#include <cstdio>
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <cstring>
#include <queue>
#include <set>
#include <vector>
#include <map>
#include <algorithm>
#include <math.h>
#include <stack>
#define INF 0x3f3f3f3f
#define IMAX 2147483646
#define LINF 0x3f3f3f3f3f3f3f3f
#define ll long long
#define ull unsigned long long
#define uint unsigned int
using namespace std;
int n, a[211111],b[211111],ji[211111],ans[211111];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++)
scanf("%d", a + i), ji[a[i]] = i;
for (int i = 1; i <= n; i++)
scanf("%d", b + i);
memset(ans, 0, sizeof(ans));
for (int i = 1; i <= n; i++)
ans[(ji[b[i]] - i + n) % n]++;
int res = 0;
for (int i = 0; i < n; i++)
res = max(res, ans[i]);
printf("%d\n", res);
return 0;
}