/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 10ms 4.52 MiB
#2 Accepted 9ms 4.52 MiB
#3 Accepted 9ms 4.547 MiB
#4 Accepted 12ms 4.52 MiB
#5 Accepted 10ms 4.344 MiB
#6 Accepted 9ms 4.312 MiB
#7 Accepted 8ms 4.52 MiB
#8 Accepted 10ms 4.746 MiB
#9 Accepted 10ms 4.52 MiB
#10 Accepted 9ms 4.562 MiB
#11 Accepted 11ms 4.52 MiB
#12 Accepted 10ms 4.52 MiB
#13 Accepted 10ms 4.32 MiB
#14 Accepted 11ms 4.52 MiB
#15 Accepted 10ms 4.52 MiB
#16 Accepted 10ms 4.312 MiB
#17 Accepted 13ms 4.52 MiB
#18 Accepted 18ms 4.52 MiB
#19 Accepted 14ms 4.523 MiB
#20 Accepted 12ms 4.52 MiB
#21 Accepted 12ms 4.496 MiB
#22 Accepted 13ms 4.52 MiB
#23 Accepted 11ms 4.52 MiB
#24 Accepted 10ms 4.52 MiB
#25 Accepted 11ms 4.52 MiB
#26 Accepted 12ms 4.316 MiB
#27 Accepted 12ms 4.473 MiB
#28 Accepted 14ms 4.551 MiB
#29 Accepted 15ms 4.32 MiB
#30 Accepted 14ms 4.543 MiB
#31 Accepted 14ms 4.52 MiB
#32 Accepted 13ms 4.523 MiB
#33 Accepted 15ms 4.344 MiB
#34 Accepted 17ms 4.52 MiB
#35 Accepted 16ms 4.527 MiB
#36 Accepted 19ms 4.43 MiB
#37 Accepted 19ms 4.52 MiB
#38 Accepted 18ms 4.52 MiB
#39 Accepted 17ms 4.453 MiB
#40 Accepted 15ms 4.355 MiB
#41 Accepted 17ms 4.336 MiB
#42 Accepted 17ms 4.52 MiB
#43 Accepted 16ms 4.316 MiB
#44 Accepted 17ms 4.523 MiB
#45 Accepted 16ms 4.363 MiB
#46 Accepted 17ms 4.52 MiB
#47 Accepted 19ms 4.523 MiB
#48 Accepted 11ms 4.52 MiB
#49 Accepted 10ms 4.52 MiB
#50 Accepted 11ms 4.52 MiB
#51 Accepted 11ms 4.43 MiB
#52 Accepted 13ms 4.555 MiB
#53 Accepted 15ms 4.391 MiB
#54 Accepted 19ms 4.52 MiB
#55 Accepted 14ms 4.52 MiB
#56 Accepted 11ms 4.363 MiB
#57 Accepted 15ms 4.316 MiB
#58 Accepted 14ms 4.52 MiB
#59 Accepted 12ms 4.332 MiB
#60 Accepted 20ms 4.52 MiB
#61 Accepted 13ms 4.316 MiB
#62 Accepted 12ms 4.52 MiB
#63 Accepted 14ms 4.52 MiB
#64 Accepted 14ms 4.523 MiB
#65 Accepted 17ms 4.418 MiB
#66 Accepted 18ms 4.398 MiB
#67 Accepted 20ms 4.531 MiB
#68 Accepted 25ms 4.516 MiB
#69 Accepted 19ms 4.312 MiB
#70 Accepted 11ms 4.52 MiB
#71 Accepted 12ms 4.52 MiB
#72 Accepted 14ms 4.516 MiB
#73 Accepted 12ms 4.52 MiB
#74 Accepted 12ms 4.531 MiB
#75 Accepted 15ms 4.395 MiB
#76 Accepted 16ms 4.52 MiB
#77 Accepted 14ms 4.52 MiB
#78 Accepted 14ms 4.52 MiB
#79 Accepted 15ms 4.559 MiB
#80 Accepted 14ms 4.52 MiB
#81 Accepted 18ms 4.52 MiB
#82 Accepted 15ms 4.312 MiB
#83 Accepted 16ms 4.52 MiB
#84 Accepted 15ms 4.555 MiB
#85 Accepted 18ms 4.52 MiB
#86 Accepted 13ms 4.52 MiB
#87 Accepted 14ms 4.52 MiB
#88 Accepted 13ms 4.559 MiB
#89 Accepted 11ms 4.316 MiB
#90 Accepted 17ms 4.523 MiB
#91 Accepted 5ms 4.312 MiB
#92 Accepted 5ms 4.52 MiB
#93 Accepted 14ms 4.52 MiB
#94 Accepted 15ms 4.52 MiB
#95 Accepted 17ms 4.422 MiB
#96 Accepted 12ms 4.52 MiB
#97 Accepted 11ms 4.52 MiB
#98 Accepted 12ms 4.566 MiB
#99 Accepted 17ms 4.402 MiB
#100 Accepted 20ms 4.312 MiB

Code

#include<bits/stdc++.h>

using namespace std;

using field=array<array<int,11>,11>;

int dx4[4]={1,-1,0,0};
int dy4[4]={0,0,1,-1};

bool ins(int i,int j){
  return (0<=i && i<11 && 0<=j && j<11);
}

field inif;

vector<int> ctab(1048576,-1e9);

int escape(int i,int j,int clk,field &a){
  int tgg=clk*256+i*16+j;
  if(ctab[tgg]!=-1e9){
    return ctab[tgg];
  }

  if(a[i][j]<=clk){
    ctab[tgg]=-1;
    return -1;
  }

  field fie=inif;
  queue<pair<int,int>> qq;
  qq.push({i,j});
  fie[i][j]=clk;
  while(!qq.empty()){
    auto od=qq.front(); qq.pop();
    for(int k=0;k<4;k++){
      int x=od.first+dx4[k];
      int y=od.second+dy4[k];
      if(!ins(x,y)){continue;}
      int tt=fie[od.first][od.second]+1;
      if(fie[x][y]>5e8 && tt<a[x][y]){
        fie[x][y]=tt;
        qq.push({x,y});
      }
    }
  }

  int res=1e9;
  for(int i=0;i<11;i++){
    res=min(res,fie[i][0]);
    res=min(res,fie[i][10]);
    res=min(res,fie[0][i]);
    res=min(res,fie[10][i]);
  }
  if(res>5e8){res=-1;}
  ctab[tgg]=res;
  return res;
}

int main(){
  for(int i=0;i<11;i++){
    for(int j=0;j<11;j++){
      inif[i][j]=1e9;
    }
  }

  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  field og=inif;
  vector<pair<int,int>> vp;
  queue<pair<int,int>> qq;
  for(int i=0;i<11;i++){
    for(int j=0;j<11;j++){
      string s;
      cin >> s;
      if(s=="#"){og[i][j]=1e9;}
      if(s=="P"){og[i][j]=1e9; vp.push_back({i,j});}
      if(s=="F"){og[i][j]=0; qq.push({i,j});}
    }
  }
  while(!qq.empty()){
    auto od=qq.front(); qq.pop();
    for(int i=0;i<4;i++){
      int x=od.first+dx4[i];
      int y=od.second+dy4[i];
      if(!ins(x,y)){continue;}
      if(og[x][y]>5e8){
        og[x][y]=og[od.first][od.second]+1;
        qq.push({x,y});
      }
    }
  }

  int res=0;
  do{
    int cres=0;
    int clk=0;
    for(auto &nx : vp){
      int cc=escape(nx.first,nx.second,clk,og);
      if(cc<0){break;}
      clk=(cc+1);
      cres++;
    }
    res=max(res,cres);
    if(res==vp.size()){break;}
  }while(next_permutation(vp.begin(),vp.end()));
  cout << res << "\n";
  return 0;
}

Information

Submit By
Type
Submission
Problem
P1221 G. Nine-eleven
Contest
Happy New Year 2026
Language
C++17 (G++ 13.2.0)
Submit At
2026-01-06 15:54:44
Judged At
2026-01-06 15:54:44
Judged By
Score
100
Total Time
25ms
Peak Memory
4.746 MiB