Submission #1245642

#TimeUsernameProblemLanguageResultExecution timeMemory
1245642GabrielSeats (IOI18_seats)C++20
11 / 100
4091 ms24116 KiB
#include "seats.h"
#include "bits/stdc++.h"
using namespace std;
vector< pair<int, int> > Sillas;
int n;
void give_initial_chart(int h, int w, vector<int> r, vector<int> c){
  n = h * w;
  Sillas.assign(n, {});
  for(int i = 0; i < n; i++){
    Sillas[i] = {r[i], c[i]};
  }
}
int swap_seats(int a, int b){
  swap(Sillas[a], Sillas[b]);
  pair<int, int> Arriba, Abajo;
  int r = 0;
  for(int i = 0; i < n; i++){
    if(i == 0){
      r++;
      Arriba.first = Sillas[i].first;
      Arriba.second = Sillas[i].second;
      Abajo.first = Sillas[i].first;
      Abajo.second = Sillas[i].second;
      continue;
    }
    if(Sillas[i].first < Arriba.first) Arriba.first = Sillas[i].first;
    if(Sillas[i].first > Abajo.first) Abajo.first = Sillas[i].first;
    if(Sillas[i].second < Arriba.second) Arriba.second = Sillas[i].second;
    if(Sillas[i].second > Abajo.second) Abajo.second = Sillas[i].second;
    if(i + 1 == (Abajo.first - Arriba.first + 1) * (Abajo.second - Arriba.second + 1)) r++;
    //cerr<<Arriba.first<<" "<<Arriba.second<<" "<<Abajo.first<<" "<<Abajo.second<<"\n";
  }
  //cerr<<"\n";
  return r;
}
#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...