提出 #577458
ソースコード 拡げる
#include<bits/stdc++.h>
using namespace std;
#define FZ(n) memset((n),0,sizeof(n))
#define FMO(n) memset((n),-1,sizeof(n))
#define F first
#define S second
#define PB push_back
#define ALL(x) begin(x),end(x)
#define SZ(x) ((int)(x).size())
#define IOS ios_base::sync_with_stdio(0); cin.tie(0)
template<typename A, typename B>
ostream& operator <<(ostream &s, const pair<A,B> &p) {
return s<<"("<<p.first<<","<<p.second<<")";
}
template<typename T>
ostream& operator <<(ostream &s, const vector<T> &c) {
s<<"[ ";
for (auto it : c) s << it << " ";
s<<"]";
return s;
}
// Let's Fight!
typedef pair<int,int> pii;
const int MX = 200005;
int N, K, Q, bye[MX];
set<pii> st;
vector<pii> seg;
int main() {
IOS;
while (cin >> N >> K) {
cin >> Q;
FZ(bye);
seg.clear();
st.clear();
st.insert({0, 0});
st.insert({N, 0});
while (Q--) {
int l, r, c;
cin >> l >> r >> c;
l--; r--;
auto iter = st.lower_bound({l+1, -1});
iter--;
vector<set<pii>::iterator> vec;
int fstL = iter->F;
int fstC = iter->S;
int lstC = 0;;
while (iter->F <= r) {
vec.PB(iter);
auto nxt = iter;
nxt++;
int nl = max(iter->F, l);
int nr = min(r, nxt->F - 1);
if (iter->S != c-1) {
seg.PB({nl, nr});
}
lstC = iter->S;;
iter = nxt;
}
for (auto it : vec) {
st.erase(it);
}
st.insert({l, c});
if (fstL < l) {
st.insert({fstL, fstC});
}
iter = st.lower_bound({l, c+1});
if (iter->F > r+1) {
st.insert({r+1, lstC});
}
/*
cout << "==== after oper ====" << endl;
for (auto it : st) cout << it << endl;
*/
}
/*
for (auto it : seg) {
cout << "bye " << it << endl;
}
*/
vector<pii> vec;
for (auto it : st) {
vec.PB(it);
}
for (int i=0; i<SZ(vec)-1; i++) {
if (vec[i].S != K) {
seg.PB({vec[i].F, vec[i+1].F-1});
}
}
for (auto it : seg) {
bye[it.F]++;
bye[it.S+1]--;
}
int ans = 0;
for (int i=0; i<N; i++) {
if (i) bye[i] += bye[i-1];
if (!bye[i]) ans++;
}
cout << ans << endl;
}
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | H - Donut Decoration |
| ユーザ | bcw0x1bd2 |
| 言語 | C++11 (GCC 4.8.1) |
| 得点 | 100 |
| コード長 | 2170 Byte |
| 結果 | AC |
| 実行時間 | 326 ms |
| メモリ | 11020 KiB |
ジャッジ結果
| セット名 | All | ||
|---|---|---|---|
| 得点 / 配点 | 100 / 100 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| All | 00_sample_00, 00_sample_01, 00_sample_02, 10_random_small_000, 10_random_small_001, 10_random_small_002, 10_random_small_003, 10_random_small_004, 10_random_small_005, 10_random_small_006, 10_random_small_007, 10_random_small_008, 10_random_small_009, 20_random_large_000, 20_random_large_001, 20_random_large_002, 20_random_large_003, 20_random_large_004, 20_random_large_005, 20_random_large_006, 20_random_large_007, 20_random_large_008, 20_random_large_009, 30_update_widely_000, 30_update_widely_001, 30_update_widely_002, 30_update_widely_003, 40_comb_pattern_000, 40_comb_pattern_001, 41_random_split_000, 41_random_split_001, 90_challenge_00, 90_challenge_01 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00 | AC | 25 ms | 1564 KiB |
| 00_sample_01 | AC | 25 ms | 1568 KiB |
| 00_sample_02 | AC | 25 ms | 1700 KiB |
| 10_random_small_000 | AC | 25 ms | 1696 KiB |
| 10_random_small_001 | AC | 26 ms | 1692 KiB |
| 10_random_small_002 | AC | 24 ms | 1688 KiB |
| 10_random_small_003 | AC | 28 ms | 1568 KiB |
| 10_random_small_004 | AC | 26 ms | 1568 KiB |
| 10_random_small_005 | AC | 24 ms | 1692 KiB |
| 10_random_small_006 | AC | 25 ms | 1700 KiB |
| 10_random_small_007 | AC | 25 ms | 1692 KiB |
| 10_random_small_008 | AC | 24 ms | 1700 KiB |
| 10_random_small_009 | AC | 25 ms | 1568 KiB |
| 20_random_large_000 | AC | 321 ms | 5776 KiB |
| 20_random_large_001 | AC | 326 ms | 5784 KiB |
| 20_random_large_002 | AC | 323 ms | 5780 KiB |
| 20_random_large_003 | AC | 323 ms | 5784 KiB |
| 20_random_large_004 | AC | 324 ms | 5780 KiB |
| 20_random_large_005 | AC | 325 ms | 5776 KiB |
| 20_random_large_006 | AC | 317 ms | 5776 KiB |
| 20_random_large_007 | AC | 319 ms | 5776 KiB |
| 20_random_large_008 | AC | 326 ms | 5780 KiB |
| 20_random_large_009 | AC | 322 ms | 5768 KiB |
| 30_update_widely_000 | AC | 163 ms | 2708 KiB |
| 30_update_widely_001 | AC | 160 ms | 2712 KiB |
| 30_update_widely_002 | AC | 166 ms | 2712 KiB |
| 30_update_widely_003 | AC | 168 ms | 2716 KiB |
| 40_comb_pattern_000 | AC | 138 ms | 1564 KiB |
| 40_comb_pattern_001 | AC | 271 ms | 11020 KiB |
| 41_random_split_000 | AC | 166 ms | 1688 KiB |
| 41_random_split_001 | AC | 178 ms | 1560 KiB |
| 90_challenge_00 | AC | 146 ms | 1572 KiB |
| 90_challenge_01 | AC | 194 ms | 3740 KiB |