Submission #1489321


Source Code Expand

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<set>
#include<map>
#include<queue>
#include<cassert>
#define PB push_back
#define MP make_pair
#define sz(v) (in((v).size()))
#define forn(i,n) for(in i=0;i<(n);++i)
#define forv(i,v) forn(i,sz(v))
#define fors(i,s) for(auto i=(s).begin();i!=(s).end();++i)
#define all(v) (v).begin(),(v).end()
using namespace std;
typedef int in;
typedef vector<in> VI;
typedef vector<VI> VVI;
struct bipm{
  in n,m;
  VVI a;
  VI pr,vs;
  void ini(in pn, in pm){
    n=pn;
    m=pm;
    a.clear();
    a.resize(n);
    pr.clear();
    pr.resize(m,-1);
  }
  void ad(in u, in v){
    a[u].PB(v);
  }
  bool mm(in u){
    if(vs[u])
      return 0;
    vs[u]=1;
    in tt;
    forv(i,a[u]){
      tt=a[u][i];
      if(pr[tt]==-1){
	pr[tt]=u;
	return 1;
      }
      if(mm(pr[tt])){
	pr[tt]=u;
	return 1;
      }
    }
    return 0;
  }
  in mmat(){
    vs.resize(n);
    in sm=0;
    forn(i,n){
      forn(j,n)
	vs[j]=0;
      sm+=mm(i);
    }
    return sm;
  }
};
bipm mat;
bool isp(in a){
  if(a<=2)
    return 0;
  for(in i=2;i*i<=a;++i){
    if(a%i==0)
      return 0;
  }
  return 1;
}
in ab(in a){
  return a<0?-a:a;
}
int main(){
  ios::sync_with_stdio(0);
  cin.tie(0);
  in n;
  cin>>n;
  VI x(n);
  forn(i,n)
    cin>>x[i];
  VI lft,rgt;
  in c;
  forv(i,x){
    if(i==0 || x[i-1]+1!=x[i]){
      c=x[i];
      if(c%2==0)
	lft.PB(c);
      else
	rgt.PB(c);
    }
    if(i==n-1 || x[i]+1!=x[i+1]){
      c=x[i]+1;
      if(c%2==0)
	lft.PB(c);
      else
	rgt.PB(c);
    }
  }
  in l=sz(lft);
  in r=sz(rgt);
  mat.ini(l,r);
  forv(i,lft){
    forv(j,rgt){
      if(isp(ab(rgt[j]-lft[i])))
	mat.ad(i,j);
    }
  }
  c=mat.mmat();
  in res=c;
  l-=c;
  r-=c;
  assert(l%2==r%2);
  if(l%2){
    res+=3;
    --l;
    --r;
  }
  res+=l+r;
  cout<<res<<endl;
  return 0;
}

Submission Info

Submission Time
Task F - Prime Flip
User w4yneb0t
Language C++14 (GCC 5.4.1)
Score 1200
Code Size 1949 Byte
Status AC
Exec Time 12 ms
Memory 256 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1200 / 1200
Status
AC × 3
AC × 75
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt, 1_47.txt, 1_48.txt, 1_49.txt, 1_50.txt, 1_51.txt, 1_52.txt, 1_53.txt, 1_54.txt, 1_55.txt, 1_56.txt, 1_57.txt, 1_58.txt, 1_59.txt, 1_60.txt, 1_61.txt, 1_62.txt, 1_63.txt, 1_64.txt, 1_65.txt, 1_66.txt, 1_67.txt, 1_68.txt, 1_69.txt, 1_70.txt, 1_71.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 256 KiB
0_01.txt AC 1 ms 256 KiB
0_02.txt AC 1 ms 256 KiB
1_00.txt AC 1 ms 256 KiB
1_01.txt AC 1 ms 256 KiB
1_02.txt AC 1 ms 256 KiB
1_03.txt AC 2 ms 256 KiB
1_04.txt AC 1 ms 256 KiB
1_05.txt AC 1 ms 256 KiB
1_06.txt AC 1 ms 256 KiB
1_07.txt AC 12 ms 256 KiB
1_08.txt AC 10 ms 256 KiB
1_09.txt AC 7 ms 256 KiB
1_10.txt AC 6 ms 256 KiB
1_11.txt AC 4 ms 256 KiB
1_12.txt AC 4 ms 256 KiB
1_13.txt AC 3 ms 256 KiB
1_14.txt AC 2 ms 256 KiB
1_15.txt AC 2 ms 256 KiB
1_16.txt AC 3 ms 256 KiB
1_17.txt AC 2 ms 256 KiB
1_18.txt AC 2 ms 256 KiB
1_19.txt AC 2 ms 256 KiB
1_20.txt AC 2 ms 256 KiB
1_21.txt AC 1 ms 256 KiB
1_22.txt AC 1 ms 256 KiB
1_23.txt AC 1 ms 256 KiB
1_24.txt AC 1 ms 256 KiB
1_25.txt AC 1 ms 256 KiB
1_26.txt AC 1 ms 256 KiB
1_27.txt AC 1 ms 256 KiB
1_28.txt AC 1 ms 256 KiB
1_29.txt AC 1 ms 256 KiB
1_30.txt AC 1 ms 256 KiB
1_31.txt AC 1 ms 256 KiB
1_32.txt AC 1 ms 256 KiB
1_33.txt AC 1 ms 256 KiB
1_34.txt AC 1 ms 256 KiB
1_35.txt AC 1 ms 256 KiB
1_36.txt AC 1 ms 256 KiB
1_37.txt AC 1 ms 256 KiB
1_38.txt AC 1 ms 256 KiB
1_39.txt AC 1 ms 256 KiB
1_40.txt AC 10 ms 256 KiB
1_41.txt AC 10 ms 256 KiB
1_42.txt AC 10 ms 256 KiB
1_43.txt AC 10 ms 256 KiB
1_44.txt AC 10 ms 256 KiB
1_45.txt AC 10 ms 256 KiB
1_46.txt AC 9 ms 256 KiB
1_47.txt AC 10 ms 256 KiB
1_48.txt AC 10 ms 256 KiB
1_49.txt AC 10 ms 256 KiB
1_50.txt AC 9 ms 256 KiB
1_51.txt AC 9 ms 256 KiB
1_52.txt AC 10 ms 256 KiB
1_53.txt AC 10 ms 256 KiB
1_54.txt AC 10 ms 256 KiB
1_55.txt AC 9 ms 256 KiB
1_56.txt AC 1 ms 256 KiB
1_57.txt AC 1 ms 256 KiB
1_58.txt AC 1 ms 256 KiB
1_59.txt AC 1 ms 256 KiB
1_60.txt AC 1 ms 256 KiB
1_61.txt AC 1 ms 256 KiB
1_62.txt AC 1 ms 256 KiB
1_63.txt AC 1 ms 256 KiB
1_64.txt AC 1 ms 256 KiB
1_65.txt AC 1 ms 256 KiB
1_66.txt AC 1 ms 256 KiB
1_67.txt AC 1 ms 256 KiB
1_68.txt AC 1 ms 256 KiB
1_69.txt AC 1 ms 256 KiB
1_70.txt AC 1 ms 256 KiB
1_71.txt AC 1 ms 256 KiB