結果

問題 No.1028 闇討ち
ユーザー queee
提出日時 2020-04-17 23:08:58
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 1,129 ms / 2,000 ms
コード長 742 bytes
コンパイル時間 660 ms
コンパイル使用メモリ 77,528 KB
実行使用メモリ 16,048 KB
最終ジャッジ日時 2024-10-03 15:05:40
合計ジャッジ時間 11,284 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <cmath>
#include <vector>
using namespace std; typedef long long ll; const int INF=1e9; using P=pair<int,int>;

int main() {
  int n; cin>>n;
  int a[n][n];
  for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>a[i][j];

  vector<P> que[n];
  for(int i=0;i<n;i++) {
    for(int j=0;j<n;j++) {
      a[i][j]--;
      que[a[i][j]].push_back({i,j});
    }
  }

  int an=0;
  for(int i=0;i<n;i++) { // 数字i
    int au=INF;
    for(int j=0;j<n;j++) { // y軸はj
      int sm=0;
      for(P one:que[i]) {
        int x=one.first, y=one.second;
        sm += max(abs(x-j), y);
      }
      au=min(au,sm);
    }
    an+=au;
  }

  cout<<an<<endl;
}

// たのむ
// 通ってください
// O(N^3)ですが通って!!
0