int A[Maxn], Max[Maxn]; int N, Prime[Maxn], Vis[Maxn];
intmain() { #ifdef hk_cnyali freopen("B.in", "r", stdin); freopen("B.out", "w", stdout); #endif scanf("%d", &N); int Cnt = 0; Vis[1] = 1; for (int i = 2; i <= N; ++i) { if (!Vis[i]) Prime[++Cnt] = i; for (int j = 1; j <= Cnt && i * Prime[j] <= N; ++j) { Vis[i * Prime[j]] = 1; if (!(i % Prime[j])) break; } }
int tot = 0; for (int i = 1; i <= Cnt; ++i) if (!(N % Prime[i])) A[++tot] = Prime[i]; for (int i = 1; i <= Cnt; ++i) for (int j = 1; j * Prime[i] <= N; ++j) Max[j * Prime[i]] = Prime[i]; int Ans = N;
for (int i = 1; i <= tot; ++i) { int now = N - A[i] + 1; if (now < 3) continue; if (Vis[now]) Ans = min(Ans, now); for (int j = max(now, A[i] + 1); j <= N; ++j) { int x = j - Max[j] + 1; if (x <= Max[j]) x = Max[j] + 1; if (x <= j && x >= 3) Ans = min(Ans, x); } } cout<<Ans<<endl; return0; }
main() { #ifdef hk_cnyali freopen("C.in", "r", stdin); freopen("C.out", "w", stdout); #endif scanf("%lld", &N); int sum = 0; for (int i = 1; i <= N; ++i) scanf("%lld", &A[i]); for (int i = 1; i <= N; ++i) scanf("%lld", &B[i]); for (int i = 1; i <= N; ++i) { int Ans = 0; Q.push(A[i] + sum); sum += B[i]; while (!Q.empty()) { int x = Q.top(); //cout<<x<<endl; if (x >= sum) break; Ans += (x - sum + B[i]); Q.pop(); } Ans += Q.size() * B[i]; cout<<Ans<<" "; } return0; }
namespace Trie { int son[Maxn * 30][2], Cnt[Maxn * 30]; int root = 1, cnt = 1;
inlinevoidinsert(int x) { int now = root; Cnt[root] ++; for (int i = 29; i >= 0; --i) { int p = (x >> i) & 1; if (!son[now][p]) son[now][p] = ++cnt; now = son[now][p]; Cnt[now]++; } }
inlineintquery(int x) { int now = root; int ans = 0; for (int i = 29; i >= 0; --i) { int p = (x >> i) & 1; if (!son[now][p] || !Cnt[son[now][p]]) ans += (1 << i), now = son[now][p ^ 1]; else now = son[now][p], Cnt[now]--; } return ans; } }
intmain() { #ifdef hk_cnyali freopen("D.in", "r", stdin); freopen("D.out", "w", stdout); #endif scanf("%d", &N); for (int i = 1; i <= N; ++i) scanf("%d", &A[i]); for (int i = 1; i <= N; ++i) { int x; scanf("%d", &x); Trie :: insert(x); } for (int i = 1; i <= N; ++i) printf("%d ", Trie :: query (A[i])); return0; }