Submission #2287076
Source Code Expand
//#pragma GCC optimize ("O3")
//#pragma GCC target ("tune=native")
//#pragma GCC target ("avx")
//#include <bits/stdc++.h>
#include <algorithm>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <sstream>
#include <functional>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <bitset>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <list>
#include <numeric>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<ll,ll> P;
typedef pair<P,ll> PPI;
typedef pair<ll,P> PIP;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef vector<P> vp;
#define PQ(T) priority_queue<T,vector<T>,greater<T>>
#define PQ2(T) priority_queue<T>
const double PI = 3.14159265358979323846;
const double EPS = 1e-12;
const ll INF = 1LL<<29;
const ll mod = 1e9+7;
#define REP(i,a,b) for(ll (i)=a;(i)<(ll)(b);++(i))
#define rep(i,n) REP(i,0,n)
#define rep1(i,n) REP(i,1,n+1)
#define repd(i,n,d) for(ll (i)=0;(i)<(ll)(n);(i)+=(d))
#define all(v) (v).begin(), (v).end()
#define pb(x) push_back(x)
#define mp(x,y) make_pair((x),(y))
#define mset(m,v) memset((m),(v),sizeof(m))
#define chmin(x,y) ((x)=min((x),(y)))
#define chmax(x,y) ((x)=max((x),(y)))
#define fst first
#define snd second
#define UNIQUE(x) (x).erase(unique(all(x)),(x).end())
#define DEBUG(x) cerr<<"line ("<<__LINE__<<") "<<#x<<": "<<x<<endl;
template<class T> ostream &operator<<(ostream &os, const vector<T> &v){int n=v.size();rep(i,n)os<<v[i]<<(i==n-1?"":" ");return os;}
#define INIT std::ios::sync_with_stdio(false);std::cin.tie(0);
#define N 55
ll n;
ll a[N], b[N], as[N];
bool f[N][N][N];
ll g[N][N];
int main(){
cin>>n;
rep(i, n) cin>>a[i];
rep(i, n) cin>>b[i];
rep(i, N) rep1(j, N-1) rep(k, N) f[i][j][k] = i%j==k;
rep(i, N) fill(g[i], g[i]+N, INF);
rep(i, N) rep(k, N) rep(j, N) if(f[i][j][k]){ g[i][k] = j; break; }
rep(i, N) g[i][i] = 0;
rep(j, N) rep(i, N) rep(k, N) chmin(g[i][k], max(g[i][j], g[j][k]));
rep(i, n) as[i] = 1LL<<a[i];
ll res = 0;
while(true){
bool flag = true;
ll mx = -1;
rep(i, n){
if(!(1&(as[i]>>b[i]))) flag = false;
ll mx2 = INF;
rep(j, N){
if(1&(as[i]>>j)) chmin(mx2, g[j][b[i]]);
}
chmax(mx, mx2);
}
if(flag) break;
if(mx==INF){
res = -1;
break;
}
rep(i, n) rep(j, N) if(1&(as[i]>>j)) as[i] |= 1LL<<(j%mx);
res += 1LL<<mx;
}
cout<<res<<endl;
return 0;
}
Submission Info
| Submission Time |
|
| Task |
C - Remainder Game |
| User |
Lepton |
| Language |
C++14 (GCC 5.4.1) |
| Score |
700 |
| Code Size |
2623 Byte |
| Status |
AC |
| Exec Time |
2 ms |
| Memory |
384 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
700 / 700 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
s1.txt, s2.txt, s3.txt, s4.txt, s5.txt |
| All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, s1.txt, s2.txt, s3.txt, s4.txt, s5.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 01.txt |
AC |
2 ms |
384 KiB |
| 02.txt |
AC |
2 ms |
384 KiB |
| 03.txt |
AC |
2 ms |
384 KiB |
| 04.txt |
AC |
2 ms |
384 KiB |
| 05.txt |
AC |
2 ms |
384 KiB |
| 06.txt |
AC |
2 ms |
384 KiB |
| 07.txt |
AC |
2 ms |
384 KiB |
| 08.txt |
AC |
2 ms |
384 KiB |
| 09.txt |
AC |
2 ms |
384 KiB |
| 10.txt |
AC |
2 ms |
384 KiB |
| 11.txt |
AC |
2 ms |
384 KiB |
| 12.txt |
AC |
2 ms |
384 KiB |
| 13.txt |
AC |
2 ms |
384 KiB |
| 14.txt |
AC |
2 ms |
384 KiB |
| 15.txt |
AC |
2 ms |
384 KiB |
| 16.txt |
AC |
2 ms |
384 KiB |
| 17.txt |
AC |
2 ms |
384 KiB |
| 18.txt |
AC |
2 ms |
384 KiB |
| 19.txt |
AC |
2 ms |
384 KiB |
| 20.txt |
AC |
2 ms |
384 KiB |
| 21.txt |
AC |
2 ms |
384 KiB |
| 22.txt |
AC |
2 ms |
384 KiB |
| 23.txt |
AC |
2 ms |
384 KiB |
| 24.txt |
AC |
2 ms |
384 KiB |
| 25.txt |
AC |
2 ms |
384 KiB |
| 26.txt |
AC |
2 ms |
384 KiB |
| 27.txt |
AC |
2 ms |
384 KiB |
| 28.txt |
AC |
2 ms |
384 KiB |
| 29.txt |
AC |
2 ms |
384 KiB |
| 30.txt |
AC |
2 ms |
384 KiB |
| 31.txt |
AC |
2 ms |
384 KiB |
| 32.txt |
AC |
2 ms |
384 KiB |
| 33.txt |
AC |
2 ms |
384 KiB |
| 34.txt |
AC |
2 ms |
384 KiB |
| 35.txt |
AC |
2 ms |
384 KiB |
| 36.txt |
AC |
2 ms |
384 KiB |
| 37.txt |
AC |
2 ms |
384 KiB |
| 38.txt |
AC |
2 ms |
384 KiB |
| 39.txt |
AC |
2 ms |
384 KiB |
| 40.txt |
AC |
2 ms |
384 KiB |
| 41.txt |
AC |
2 ms |
384 KiB |
| 42.txt |
AC |
2 ms |
384 KiB |
| 43.txt |
AC |
2 ms |
384 KiB |
| 44.txt |
AC |
2 ms |
384 KiB |
| 45.txt |
AC |
2 ms |
384 KiB |
| 46.txt |
AC |
2 ms |
384 KiB |
| 47.txt |
AC |
2 ms |
384 KiB |
| 48.txt |
AC |
2 ms |
384 KiB |
| 49.txt |
AC |
2 ms |
384 KiB |
| 50.txt |
AC |
2 ms |
384 KiB |
| 51.txt |
AC |
2 ms |
384 KiB |
| 52.txt |
AC |
2 ms |
384 KiB |
| 53.txt |
AC |
2 ms |
384 KiB |
| s1.txt |
AC |
2 ms |
384 KiB |
| s2.txt |
AC |
2 ms |
384 KiB |
| s3.txt |
AC |
2 ms |
384 KiB |
| s4.txt |
AC |
2 ms |
384 KiB |
| s5.txt |
AC |
2 ms |
384 KiB |