Submission #1238492

#TimeUsernameProblemLanguageResultExecution timeMemory
1238492noyancanturk자리 배치 (IOI18_seats)C++20
11 / 100
4091 ms28452 KiB
#include "seats.h"
#include<bits/stdc++.h>
using namespace std;

const int lim=1e4+100;

int n,h,w;
vector<int>v[lim];

vector<int>r,c;

void give_initial_chart(int H,int W,vector<int>R,vector<int>C){
  n=H*W;
  h=H;
  w=W;
  for(int i=0;i<H;i++){
    v[i].resize(W);
  }
  r=R,c=C;
  for(int i=0;i<n;i++){
    v[r[i]][c[i]]=i;
  }
}

int swap_seats(int x,int y){
  swap(v[r[x]][c[x]],v[r[y]][c[y]]);
  swap(r[x],r[y]);
  swap(c[x],c[y]);
  int ans=0,mxc=INT_MIN,mxr=INT_MIN,mnr=INT_MAX,mnc=INT_MAX;
  for(int i=0;i<n;i++){
    mxc=max(mxc,c[i]);
    mxr=max(mxr,r[i]);
    mnc=min(mnc,c[i]);
    mnr=min(mnr,r[i]);
    if(i+1==(mxc-mnc+1)*(mxr-mnr+1)){
      ans++;
    }
  }
  return ans;
}

// std::vector<int> r;

// void give_initial_chart(int H, int W, std::vector<int> R, std::vector<int> C) {
//   r = R;
// }

// int swap_seats(int a, int b) {
//   return r[a];
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...