Task: | Final Array |
Sender: | Lahna |
Submission time: | 2019-05-25 11:52:49 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.11 s | details |
#2 | ACCEPTED | 0.08 s | details |
#3 | ACCEPTED | 0.03 s | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:28:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while (j<hp.size() && hp[j].F==i){ ~^~~~~~~~~~
Code
#include <bits/stdc++.h> #define F first #define S second using namespace std; int n, m; int a[101010]; int ln[101010]; int ended[101010]; vector<pair<int, pair<int, int> > > hp; priority_queue<pair<int, int> > pq; int main(){ ios_base::sync_with_stdio(0);cin.tie(0); cin >> n >> m; for (int i=0;i<m;++i){ int a, b, x; cin >> a >> b >> x; ln[i]=x-a; hp.push_back({a, {1, i}}); hp.push_back({b+1, {0, i}}); } sort(hp.begin(), hp.end()); int j=0; for (int i=1;i<=n;++i){ while (j<hp.size() && hp[j].F==i){ if (hp[j].S.F==0){ ended[hp[j].S.S]=1; }else{ pq.push({ln[hp[j].S.S], hp[j].S.S}); } ++j; } while (!pq.empty() && ended[pq.top().S]) pq.pop(); int v=0; if (!pq.empty()){ v=pq.top().F+i; } cout << v << " "; } cout << "\n"; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
100000 100000 29706 39977 913671103 20575 89990 878449866 1691 70785 229168045 81099 81323 611730238 ... |
correct output |
---|
227121122 450258482 450258483 ... |
user output |
---|
227121122 450258482 450258483 ... Truncated |
Test 2
Verdict: ACCEPTED
input |
---|
100000 100000 1 100000 1 1 100000 2 1 100000 3 1 100000 4 ... |
correct output |
---|
100000 100001 100002 100003 10... |
user output |
---|
100000 100001 100002 100003 10... Truncated |
Test 3
Verdict: ACCEPTED
input |
---|
8 2 1 4 1 1 8 1 |
correct output |
---|
1 2 3 4 5 6 7 8 |
user output |
---|
1 2 3 4 5 6 7 8 |