# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
41323 | 2018-02-16T01:20:40 Z | wzy | Trading (IZhO13_trading) | C++11 | 1378 ms | 65536 KB |
#include <bits/stdc++.h> using namespace std; #define pii pair<int,int> #define F first #define pb push_back #define S second int n , m , carry[1000005]; vector<pii> st [1000005], ed[1000005]; multiset<pii> ans; int main(){ scanf("%d%d" , &n , &m); for(int i = 0 ; i < m ; i++){ int l ,r , v; scanf("%d%d%d" , &l , &r , &v); st[l].pb(pii(r, v)); } for(int i = 0 ; i <= n ; i++) carry[i] = 0; for(int i = 1 ; i <= n ; i++){ while(!st[i].empty()){ ans.insert(pii(i -st[i].back().S , st[i].back().F)); ed[st[i].back().F].pb(pii(pii( i - st[i].back().S , st[i].back().F))); st[i].pop_back(); } if(!ans.empty()){ pii u = *ans.begin(); carry[i] = max(carry[i] , i - u.F); } while(ed[i].size()){ ans.erase(ans.find(ed[i].back())); ed[i].pop_back(); } } for(int i = 1 ; i <= n; i++) printf("%d " , carry[i]); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 40 ms | 47352 KB | Output is correct |
2 | Correct | 41 ms | 47356 KB | Output is correct |
3 | Correct | 39 ms | 47492 KB | Output is correct |
4 | Correct | 45 ms | 47492 KB | Output is correct |
5 | Correct | 41 ms | 47512 KB | Output is correct |
6 | Correct | 42 ms | 47624 KB | Output is correct |
7 | Correct | 216 ms | 56368 KB | Output is correct |
8 | Correct | 240 ms | 57892 KB | Output is correct |
9 | Correct | 248 ms | 58368 KB | Output is correct |
10 | Correct | 281 ms | 59616 KB | Output is correct |
11 | Correct | 275 ms | 59872 KB | Output is correct |
12 | Runtime error | 1378 ms | 65536 KB | Execution killed with signal 11 (could be triggered by violating memory limits) |
13 | Halted | 0 ms | 0 KB | - |