# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
41318 | 2018-02-15T22:30:24 Z | IvanC | Trading (IZhO13_trading) | C++14 | 239 ms | 65536 KB |
#include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; typedef tuple<int,int,int> trinca; priority_queue<ii> pq; vector<trinca> sweep; int N,M,ptr; int main(){ scanf("%d %d",&N,&M); for(int i = 1;i<=M;i++){ int l,r,x; scanf("%d %d %d",&l,&r,&x); sweep.push_back(make_tuple(l,x - l,r)); } sort(sweep.begin(),sweep.end()); for(int i = 1;i<=N;i++){ while(ptr < M && get<0>(sweep[ptr]) <= i ){ ii novo = ii(get<1>(sweep[ptr]),get<2>(sweep[ptr])); pq.push(novo); ptr++; } while(!pq.empty() && pq.top().second < i ){ pq.pop(); } if(!pq.empty()){ printf("%d ",pq.top().first + i); } else{ printf("0 "); } } printf("\n"); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 248 KB | Output is correct |
2 | Correct | 2 ms | 356 KB | Output is correct |
3 | Correct | 2 ms | 720 KB | Output is correct |
4 | Correct | 2 ms | 720 KB | Output is correct |
5 | Correct | 3 ms | 720 KB | Output is correct |
6 | Correct | 3 ms | 828 KB | Output is correct |
7 | Correct | 113 ms | 7204 KB | Output is correct |
8 | Correct | 125 ms | 10948 KB | Output is correct |
9 | Correct | 130 ms | 15168 KB | Output is correct |
10 | Correct | 146 ms | 20052 KB | Output is correct |
11 | Correct | 151 ms | 22948 KB | Output is correct |
12 | Correct | 164 ms | 28576 KB | Output is correct |
13 | Correct | 161 ms | 31424 KB | Output is correct |
14 | Correct | 167 ms | 35880 KB | Output is correct |
15 | Correct | 190 ms | 42760 KB | Output is correct |
16 | Correct | 198 ms | 45856 KB | Output is correct |
17 | Correct | 186 ms | 50948 KB | Output is correct |
18 | Correct | 204 ms | 57912 KB | Output is correct |
19 | Correct | 192 ms | 63100 KB | Output is correct |
20 | Correct | 239 ms | 65536 KB | Output is correct |