# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
96469 | 2019-02-09T14:44:41 Z | rajarshi_basu | Global Warming (NOI13_gw) | C++14 | 546 ms | 33792 KB |
#include <iostream> #include <vector> #include <set> #include <iomanip> #include <algorithm> #include <functional> #include <stdio.h> #include <cmath> #include <queue> #include <string> #include <map> #include <complex> #include <stack> #include <set> #define FOR(i,n) for (int i = 0;i<n;i++) #define FORE(i, a, b) for (int i = a;i<= b;i++) #define ll long long int #define ff first #define ss second #define ii pair<int,int> #define pb push_back #define mp make_pair using namespace std; int* arr; int N; vector<ii> all; vector<int> _begs_; vector<int> _ends_; void preProcess(){ FOR(i,N){ if(i==0)continue; if(arr[i] != arr[i-1]){ all.pb(mp(min(arr[i],arr[i-1]),max(arr[i],arr[i-1]) -1)); _begs_.pb(min(arr[i],arr[i-1])); _ends_.pb(max(arr[i],arr[i-1])-1); } } sort(_begs_.begin(), _begs_.end()); sort(_ends_.begin(), _ends_.end()); } // sl == sealevel int query(int sl){ int cnt = 0; //FOR(i,all.size())if(sl >= all[i].ff and sl <= all[i].ss)cnt++; int eliminate = _begs_.end() - lower_bound(_begs_.begin(), _begs_.end() , sl+1); eliminate += lower_bound(_ends_.begin(), _ends_.end() , sl) - _ends_.begin(); cnt = all.size() - eliminate; if(arr[0] > sl)cnt++; if(arr[N-1] > sl)cnt++; //if((arr[0] > sl and arr[N-1]>sl)or(arr[0] <= sl and arr[N-1] <= sl))cnt++; return cnt/2; } int gw(int nn,int *H){ N = nn; ii crdcmprs[N]; FOR(i,N)crdcmprs[i].ff = H[i],crdcmprs[i].ss = i; sort(crdcmprs,crdcmprs+N); arr = new int[N]; int PtR = 0; FOR(i,N){ if(i > 0 and crdcmprs[i].ff > crdcmprs[i-1].ff)PtR++; arr[crdcmprs[i].ss] = PtR; } int mx = 0; preProcess(); //FOR(i,N)cout << arr[i] << " ";cout << endl; FOR(i,all.size()){ // cout << all[i].ff << " " << all[i].ss << endl; } FOR(i,min(crdcmprs[N-1].ff+1,N+2)){ int val; mx = max(mx,val = query(i)); //cout << val << endl; } return mx; } int main(){ int n; cin >> n; int h[n]; FOR(i,n)cin >> h[i]; cout << gw(n,h) << endl; return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 376 KB | Output is correct |
2 | Correct | 3 ms | 504 KB | Output is correct |
3 | Correct | 2 ms | 420 KB | Output is correct |
4 | Correct | 3 ms | 376 KB | Output is correct |
5 | Correct | 3 ms | 376 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 39 ms | 3824 KB | Output is correct |
2 | Correct | 38 ms | 3952 KB | Output is correct |
3 | Correct | 39 ms | 3948 KB | Output is correct |
4 | Correct | 37 ms | 3948 KB | Output is correct |
5 | Correct | 39 ms | 3952 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 82 ms | 3980 KB | Output is correct |
2 | Correct | 53 ms | 3948 KB | Output is correct |
3 | Correct | 88 ms | 3820 KB | Output is correct |
4 | Correct | 72 ms | 4056 KB | Output is correct |
5 | Correct | 73 ms | 4716 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 535 ms | 33792 KB | Execution killed with signal 9 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 546 ms | 33792 KB | Execution killed with signal 9 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |