Submission #85787

# Submission time Handle Problem Language Result Execution time Memory
85787 2018-11-21T14:19:48 Z Vardanyan Trading (IZhO13_trading) C++14
0 / 100
393 ms 66560 KB
//#pragma GCC optimize "-O3"
#include <bits/stdc++.h>
using namespace std;
const int N = 300*1000+5;
vector<pair<int,int> > op[N];
vector<pair<int,int> > cl[N];
int a[N];
int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    vector<pair<pair<int,int>,int > > v;
    for(int i = 0;i<m;i++){
        int l,r,x;
        scanf("%d%d%d",&l,&r,&x);
        op[l].push_back({x,i});
        cl[r].push_back({x,i});
        v.push_back({{l,r},x});
    }
    set<pair<int,int> > ms;
    for(int i = 1;i<=n;i++){
        for(int j = 0;j<op[i].size();j++){
                int id = op[i][j].first-i;
                ms.insert({id,op[i][j].second});
        }
        if(ms.size() == 0) continue;
        set<pair<int,int> >::iterator it = (--ms.end());
        pair<int,int> now = *it;
        a[i] = v[now.second].second+(i-v[now.second].first.first);
       // printf("%d ",a[i]);
        for(int j = 0;j<cl[i].size();j++){
            int id = cl[i][j].first-v[cl[i][j].second].first.first;
            ms.erase({id,cl[i][j].second});
        }
    }
    for(int i = 1;i<=n;i++) printf("%d ",a[i]);
    printf("\n");
	return 0;
}

Compilation message

trading.cpp: In function 'int main()':
trading.cpp:21:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j = 0;j<op[i].size();j++){
                       ~^~~~~~~~~~~~~
trading.cpp:30:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j = 0;j<cl[i].size();j++){
                       ~^~~~~~~~~~~~~
trading.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~
trading.cpp:14:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d",&l,&r,&x);
         ~~~~~^~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 14 ms 14456 KB Output is correct
2 Correct 14 ms 14548 KB Output is correct
3 Correct 16 ms 14564 KB Output is correct
4 Correct 15 ms 14616 KB Output is correct
5 Correct 16 ms 14696 KB Output is correct
6 Correct 17 ms 14916 KB Output is correct
7 Correct 242 ms 28844 KB Output is correct
8 Correct 242 ms 33032 KB Output is correct
9 Correct 267 ms 36880 KB Output is correct
10 Correct 336 ms 41328 KB Output is correct
11 Correct 267 ms 45396 KB Output is correct
12 Correct 342 ms 51804 KB Output is correct
13 Correct 321 ms 54808 KB Output is correct
14 Correct 342 ms 60416 KB Output is correct
15 Correct 351 ms 62480 KB Output is correct
16 Correct 378 ms 63784 KB Output is correct
17 Runtime error 393 ms 66560 KB Memory limit exceeded: We have a known bug that the memory usage is measured incorrectly (possibly because of Meltdown/Spectre patch), so your solution may be correct. Please submit again. Sorry for the inconvenience.
18 Halted 0 ms 0 KB -