Submission #949728
Source Code Expand
#include <bits/stdc++.h> using namespace std; #define FOR(i,k,n) for(ll i = (ll)(k); i < (ll)(n); i++) #define REP(i,n) FOR(i,0,n) #define ALL(a) a.begin(), a.end() #define MS(m,v) memset(m,v,sizeof(m)) typedef long long ll; typedef long double ld; typedef vector<ll> vi; typedef vector<string> vs; typedef pair<ll, ll> pii; typedef pair<ld, ld> pdd; const ll MOD = 1000000007; const ll INF = MOD + 1; const ld EPS = 1e-12; template<class T> T &chmin(T &a, const T &b) { return a = min(a, b); } template<class T> T &chmax(T &a, const T &b) { return a = max(a, b); } /*--------------------template--------------------*/ struct Data { pdd num; Data() :num(1, 0) {}; Data(pdd n) { num = n; }; }; struct SegmentTree { ll n; vector<Data> data; SegmentTree(ll N) { n = 1; while (n < N) n *= 2; data.resize(2 * n); } private: Data sub(ll left, ll right, ll node, ll nleft, ll nright) { if (nright <= left || right <= nleft) return Data(); if (left <= nleft && nright <= right) return data[node]; Data vl = sub(left, right, node * 2 + 1, nleft, (nleft + nright) / 2); Data vr = sub(left, right, node * 2 + 2, (nleft + nright) / 2, nright); return pdd(vl.num.first * vr.num.first, vl.num.second * vr.num.first + vr.num.second); } public: void update(ll pos, Data value) { pos += n - 1; data[pos] = value; while (pos > 0) { pos = (pos - 1) / 2; ld a = data[pos * 2 + 1].num.first, b = data[pos * 2 + 1].num.second; ld c = data[pos * 2 + 2].num.first, d = data[pos * 2 + 2].num.second; data[pos] = pdd(a * c, b * c + d); } } ld get() { return data[0].num.first + data[0].num.second; } }; typedef pair<ll, pdd> query; int main() { cin.sync_with_stdio(false); cout << fixed << setprecision(10); ll n, m; cin >> n >> m; vector<query> q; set<ld> st; REP(i, m) { ll a; ld b, c; cin >> a >> b >> c; a--; st.insert(a); q.emplace_back(a, pdd(b, c)); } map<ld, ll> dict; ll sz = 0; for (auto i : st) dict[i] = sz++; SegmentTree seg(sz); ld ansmax = 1, ansmin = 1; REP(i, m) { ll id = dict[q[i].first]; pdd a = q[i].second; seg.update(id, a); ld tmp = seg.get(); chmax(ansmax, tmp); chmin(ansmin, tmp); } cout << ansmin << endl; cout << ansmax << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - タコヤキオイシクナール |
User | amano |
Language | C++11 (GCC 4.8.1) |
Score | 100 |
Code Size | 2351 Byte |
Status | AC |
Exec Time | 145 ms |
Memory | 14288 KB |
Judge Result
Set Name | small | large | ||||
---|---|---|---|---|---|---|
Score / Max Score | 50 / 50 | 50 / 50 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
small | small/small_00_sample_01.txt, small/small_00_sample_02.txt, small/small_00_sample_03.txt, small/small_00_sample_04.txt, small/small_01_min.txt, small/small_01_nom.txt, small/small_01_rand_00.txt, small/small_01_rand_01.txt, small/small_01_rand_02.txt, small/small_01_rand_03.txt, small/small_01_rand_04.txt, small/small_01_rand_05.txt, small/small_01_rand_06.txt, small/small_01_rand_07.txt, small/small_01_rand_08.txt, small/small_01_rand_09.txt, small/small_02_maxrand_00.txt, small/small_02_maxrand_01.txt, small/small_02_maxrand_02.txt, small/small_02_maxrand_03.txt, small/small_02_maxrand_04.txt, small/small_02_maxrand_05.txt, small/small_02_maxrand_06.txt, small/small_02_maxrand_07.txt, small/small_02_maxrand_08.txt, small/small_02_maxrand_09.txt, small/small_03_smalln_00.txt, small/small_03_smalln_01.txt, small/small_03_smalln_02.txt, small/small_03_smalln_03.txt, small/small_03_smalln_04.txt, small/small_03_smalln_05.txt, small/small_03_smalln_06.txt, small/small_03_smalln_07.txt, small/small_03_smalln_08.txt, small/small_03_smalln_09.txt, small/small_04_allplus_00.txt, small/small_04_allplus_01.txt, small/small_04_allplus_02.txt, small/small_05_allminus_00.txt, small/small_05_allminus_01.txt, small/small_05_allminus_02.txt |
large | small/small_00_sample_01.txt, small/small_00_sample_02.txt, small/small_00_sample_03.txt, small/small_00_sample_04.txt, small/small_01_min.txt, small/small_01_nom.txt, small/small_01_rand_00.txt, small/small_01_rand_01.txt, small/small_01_rand_02.txt, small/small_01_rand_03.txt, small/small_01_rand_04.txt, small/small_01_rand_05.txt, small/small_01_rand_06.txt, small/small_01_rand_07.txt, small/small_01_rand_08.txt, small/small_01_rand_09.txt, small/small_02_maxrand_00.txt, small/small_02_maxrand_01.txt, small/small_02_maxrand_02.txt, small/small_02_maxrand_03.txt, small/small_02_maxrand_04.txt, small/small_02_maxrand_05.txt, small/small_02_maxrand_06.txt, small/small_02_maxrand_07.txt, small/small_02_maxrand_08.txt, small/small_02_maxrand_09.txt, small/small_03_smalln_00.txt, small/small_03_smalln_01.txt, small/small_03_smalln_02.txt, small/small_03_smalln_03.txt, small/small_03_smalln_04.txt, small/small_03_smalln_05.txt, small/small_03_smalln_06.txt, small/small_03_smalln_07.txt, small/small_03_smalln_08.txt, small/small_03_smalln_09.txt, small/small_04_allplus_00.txt, small/small_04_allplus_01.txt, small/small_04_allplus_02.txt, small/small_05_allminus_00.txt, small/small_05_allminus_01.txt, small/small_05_allminus_02.txt, large/large_01_rand_00.txt, large/large_01_rand_01.txt, large/large_01_rand_02.txt, large/large_01_rand_03.txt, large/large_01_rand_04.txt, large/large_01_rand_05.txt, large/large_01_rand_06.txt, large/large_01_rand_07.txt, large/large_01_rand_08.txt, large/large_01_rand_09.txt, large/large_02_maxrand_00.txt, large/large_02_maxrand_01.txt, large/large_02_maxrand_02.txt, large/large_02_maxrand_03.txt, large/large_02_maxrand_04.txt, large/large_02_maxrand_05.txt, large/large_02_maxrand_06.txt, large/large_02_maxrand_07.txt, large/large_02_maxrand_08.txt, large/large_02_maxrand_09.txt, large/large_03_smalln_00.txt, large/large_03_smalln_01.txt, large/large_03_smalln_02.txt, large/large_03_smalln_03.txt, large/large_03_smalln_04.txt, large/large_03_smalln_05.txt, large/large_03_smalln_06.txt, large/large_03_smalln_07.txt, large/large_03_smalln_08.txt, large/large_03_smalln_09.txt, large/large_04_allplus_00.txt, large/large_04_allplus_01.txt, large/large_04_allplus_02.txt, large/large_05_allminus_00.txt, large/large_05_allminus_01.txt, large/large_05_allminus_02.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
large/large_01_rand_00.txt | AC | 66 ms | 4728 KB |
large/large_01_rand_01.txt | AC | 46 ms | 4100 KB |
large/large_01_rand_02.txt | AC | 133 ms | 13688 KB |
large/large_01_rand_03.txt | AC | 65 ms | 6664 KB |
large/large_01_rand_04.txt | AC | 93 ms | 8836 KB |
large/large_01_rand_05.txt | AC | 44 ms | 3976 KB |
large/large_01_rand_06.txt | AC | 67 ms | 6820 KB |
large/large_01_rand_07.txt | AC | 89 ms | 8616 KB |
large/large_01_rand_08.txt | AC | 120 ms | 12672 KB |
large/large_01_rand_09.txt | AC | 66 ms | 6660 KB |
large/large_02_maxrand_00.txt | AC | 145 ms | 14212 KB |
large/large_02_maxrand_01.txt | AC | 144 ms | 14208 KB |
large/large_02_maxrand_02.txt | AC | 141 ms | 14288 KB |
large/large_02_maxrand_03.txt | AC | 140 ms | 14244 KB |
large/large_02_maxrand_04.txt | AC | 137 ms | 14208 KB |
large/large_02_maxrand_05.txt | AC | 139 ms | 14200 KB |
large/large_02_maxrand_06.txt | AC | 143 ms | 14208 KB |
large/large_02_maxrand_07.txt | AC | 139 ms | 14208 KB |
large/large_02_maxrand_08.txt | AC | 139 ms | 14204 KB |
large/large_02_maxrand_09.txt | AC | 143 ms | 14204 KB |
large/large_03_smalln_00.txt | AC | 114 ms | 8276 KB |
large/large_03_smalln_01.txt | AC | 120 ms | 9600 KB |
large/large_03_smalln_02.txt | AC | 83 ms | 4076 KB |
large/large_03_smalln_03.txt | AC | 106 ms | 6140 KB |
large/large_03_smalln_04.txt | AC | 77 ms | 4036 KB |
large/large_03_smalln_05.txt | AC | 98 ms | 5496 KB |
large/large_03_smalln_06.txt | AC | 110 ms | 7500 KB |
large/large_03_smalln_07.txt | AC | 113 ms | 8344 KB |
large/large_03_smalln_08.txt | AC | 80 ms | 4064 KB |
large/large_03_smalln_09.txt | AC | 112 ms | 7672 KB |
large/large_04_allplus_00.txt | AC | 141 ms | 14208 KB |
large/large_04_allplus_01.txt | AC | 138 ms | 14208 KB |
large/large_04_allplus_02.txt | AC | 135 ms | 14212 KB |
large/large_05_allminus_00.txt | AC | 141 ms | 14204 KB |
large/large_05_allminus_01.txt | AC | 139 ms | 14212 KB |
large/large_05_allminus_02.txt | AC | 138 ms | 14196 KB |
small/small_00_sample_01.txt | AC | 19 ms | 928 KB |
small/small_00_sample_02.txt | AC | 18 ms | 796 KB |
small/small_00_sample_03.txt | AC | 19 ms | 796 KB |
small/small_00_sample_04.txt | AC | 20 ms | 928 KB |
small/small_01_min.txt | AC | 17 ms | 800 KB |
small/small_01_nom.txt | AC | 19 ms | 792 KB |
small/small_01_rand_00.txt | AC | 21 ms | 1052 KB |
small/small_01_rand_01.txt | AC | 20 ms | 924 KB |
small/small_01_rand_02.txt | AC | 19 ms | 928 KB |
small/small_01_rand_03.txt | AC | 20 ms | 1040 KB |
small/small_01_rand_04.txt | AC | 20 ms | 928 KB |
small/small_01_rand_05.txt | AC | 18 ms | 928 KB |
small/small_01_rand_06.txt | AC | 19 ms | 916 KB |
small/small_01_rand_07.txt | AC | 20 ms | 928 KB |
small/small_01_rand_08.txt | AC | 20 ms | 796 KB |
small/small_01_rand_09.txt | AC | 20 ms | 924 KB |
small/small_02_maxrand_00.txt | AC | 20 ms | 1056 KB |
small/small_02_maxrand_01.txt | AC | 21 ms | 1180 KB |
small/small_02_maxrand_02.txt | AC | 19 ms | 1052 KB |
small/small_02_maxrand_03.txt | AC | 20 ms | 1168 KB |
small/small_02_maxrand_04.txt | AC | 19 ms | 1056 KB |
small/small_02_maxrand_05.txt | AC | 20 ms | 1052 KB |
small/small_02_maxrand_06.txt | AC | 19 ms | 1056 KB |
small/small_02_maxrand_07.txt | AC | 21 ms | 1180 KB |
small/small_02_maxrand_08.txt | AC | 22 ms | 1008 KB |
small/small_02_maxrand_09.txt | AC | 19 ms | 1056 KB |
small/small_03_smalln_00.txt | AC | 21 ms | 1052 KB |
small/small_03_smalln_01.txt | AC | 21 ms | 928 KB |
small/small_03_smalln_02.txt | AC | 20 ms | 924 KB |
small/small_03_smalln_03.txt | AC | 20 ms | 928 KB |
small/small_03_smalln_04.txt | AC | 21 ms | 1048 KB |
small/small_03_smalln_05.txt | AC | 21 ms | 928 KB |
small/small_03_smalln_06.txt | AC | 20 ms | 928 KB |
small/small_03_smalln_07.txt | AC | 21 ms | 928 KB |
small/small_03_smalln_08.txt | AC | 21 ms | 932 KB |
small/small_03_smalln_09.txt | AC | 20 ms | 924 KB |
small/small_04_allplus_00.txt | AC | 25 ms | 1056 KB |
small/small_04_allplus_01.txt | AC | 21 ms | 1056 KB |
small/small_04_allplus_02.txt | AC | 20 ms | 1044 KB |
small/small_05_allminus_00.txt | AC | 21 ms | 1052 KB |
small/small_05_allminus_01.txt | AC | 19 ms | 1056 KB |
small/small_05_allminus_02.txt | AC | 20 ms | 1056 KB |