Submission #16884544
Source Code Expand
#define _USE_MATH_DEFINES
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
#define forn(a, e) for (i64 a = 0; a < (i64)(e); a++)
#define forr(a, s, e) for (i64 a = s; a < (i64)(e); a++)
#define fore(e, a) for (auto& e : a)
#ifdef LOCAL
#define logv(a) {cerr << #a << " = "; fore(e, a) {cerr << e << " ";} cerr << "\n";}
#define logvp(a) {cerr << #a << " = "; fore(e, a) {cerr << "(" << e.first << ", " << e.second << ") ";} cerr << "\n";}
#define logvv(a) {cerr << #a << " = \n"; fore(r, a) { fore(e, r) {cerr << e << " ";} cerr << "\n";} }
#define logvf(a, field) {cerr << #a"."#field << " = \n"; fore(e, a) { cerr << e.field << " ";} cerr << "\n"; }
#define logvff(a, f1, f2) {cerr << #a".{"#f1 << ", "#f2 << "} = \n"; fore(e, a) { cerr << "(" << e.f1 <<", " << e.f2 << ") ";} cerr << "\n"; }
#define logs(a) cerr << #a << " = " << (a) << "\n";
#define logss(a, b) cerr << #a << " = " << (a) << ", " << #b << " = " << (b) << "\n";
#define logp(a) cerr << #a << " = " << "(" << a.first << ", " << a.second << ")" << "\n";
#define cond(pred, stmt) if (pred) { stmt }
#else
#define logv(a)
#define logvp(a)
#define logvv(a)
#define logvf(a, field)
#define logvff(a, f1, f2)
#define logs(a)
#define logss(a, b)
#define logp(a)
#define cond(pred, stmt)
#endif
using iip = pair<int, int>;
using llp = pair<i64, i64>;
using ivec = vector<int>;
using llvec = vector<i64>;
using svec = vector<string>;
template<typename T> using vec = vector<T>;
template<typename T, typename Dim>
auto make_vec(T value, Dim dim) { return vector<T>(dim, value); }
template<typename T, typename Dim1, typename... Dim>
auto make_vec(T value, Dim1 dim1, Dim... dims) { return make_vec(make_vec(value, dims...), dim1); }
template<typename T>
bool uax(T& v, const T& newv) { if (v < newv) { v = newv; return true; } else return false; }
template<typename T>
bool uin(T& v, const T& newv) { if (v > newv) { v = newv; return true; } else return false; }
template<typename T>
istream& operator>>(istream& is, vector<T>& c) { for (auto& e : c) is >> e; return is; }
template<typename T, size_t N>
istream& operator>>(istream& is, array<T, N>& c) { for (auto& e : c) is >> e; return is; }
template<typename ...T>
istream& read(T&... args) { return (cin >> ... >> args); }
static mt19937 rande(123123);
template<typename T>
T rand_int(T from, T to) { uniform_int_distribution<T> distr(from, to); return distr(rande); }
// const i64 INF = 1e18;
const int INF = 2e9;
const i64 M = 998244353;
const int MXB = 20;
using bin = bitset<MXB + 1>;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
rande.seed(chrono::steady_clock::now().time_since_epoch().count());
i64 n, q;
while (read(n, q)) {
map<i64, i64> rs;
map<i64, i64> cs;
rs[n] = n;
cs[n] = n;
i64 ans = (n - 2) * (n - 2);
forn(i, q) {
i64 t, x;
read(t, x);
if (t == 1) {
auto it = cs.lower_bound(x);
if (it->first != x) {
ans -= it->second - 2;
if (it == cs.begin()) {
rs.begin()->second = x;
}
cs[x] = it->second;
}
} else {
auto it = rs.lower_bound(x);
if (it->first != x) {
ans -= it->second - 2;
if (it == rs.begin()) {
cs.begin()->second = x;
}
rs[x] = it->second;
}
}
// logs(ans);
// logvp(cs);
// logvp(rs);
}
cout << ans << endl;
}
}
Submission Info
| Submission Time |
|
| Task |
F - Simplified Reversi |
| User |
msporyshev |
| Language |
C++ (GCC 9.2.1) |
| Score |
600 |
| Code Size |
3802 Byte |
| Status |
AC |
| Exec Time |
162 ms |
| Memory |
16108 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
600 / 600 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
| All |
hand_01.txt, hand_02.txt, hand_03.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| Case Name |
Status |
Exec Time |
Memory |
| hand_01.txt |
AC |
6 ms |
3584 KiB |
| hand_02.txt |
AC |
5 ms |
3624 KiB |
| hand_03.txt |
AC |
3 ms |
3632 KiB |
| random_01.txt |
AC |
156 ms |
16104 KiB |
| random_02.txt |
AC |
25 ms |
5280 KiB |
| random_03.txt |
AC |
152 ms |
16108 KiB |
| random_04.txt |
AC |
71 ms |
9768 KiB |
| random_05.txt |
AC |
162 ms |
16000 KiB |
| random_06.txt |
AC |
118 ms |
13852 KiB |
| random_07.txt |
AC |
161 ms |
16104 KiB |
| random_08.txt |
AC |
22 ms |
4924 KiB |
| random_09.txt |
AC |
144 ms |
16060 KiB |
| random_10.txt |
AC |
10 ms |
3624 KiB |
| random_11.txt |
AC |
96 ms |
12064 KiB |
| random_12.txt |
AC |
71 ms |
11908 KiB |
| random_13.txt |
AC |
79 ms |
16104 KiB |
| random_14.txt |
AC |
78 ms |
15460 KiB |
| random_15.txt |
AC |
77 ms |
15460 KiB |
| sample_01.txt |
AC |
5 ms |
3552 KiB |
| sample_02.txt |
AC |
2 ms |
3488 KiB |
| sample_03.txt |
AC |
2 ms |
3580 KiB |