Submission #244723

# Submission time Handle Problem Language Result Execution time Memory
244723 2020-07-04T18:18:06 Z eohomegrownapps Global Warming (CEOI18_glo) C++14
10 / 100
181 ms 5644 KB
#include <bits/stdc++.h>
using namespace std;

struct Fenwick{
	vector<int> arr;
	int n;
	bool startFromLeft;
	Fenwick(int _n, bool _startFromLeft){
		//0 to n-1 inclusive
		startFromLeft = _startFromLeft;
		n=_n;
		arr.resize(n+1);
	}

	int conv(int ind){
		ind+=1;
		if (!startFromLeft){
			ind=n+1-ind;
		}
		return ind;
	}

	void update(int ind, int val){
		ind = conv(ind);
		while (ind<=n){
			arr[ind]=max(arr[ind],val);
			ind+=ind&(-ind);
		}
	}

	int query(int ind){
		ind = conv(ind);
		int val = 0;
		while (ind>0){
			val=max(val,arr[ind]);
			ind-=ind&(-ind);
		}
		return val;
	}
};

vector<int> vals;
vector<int> mp;

vector<int> lisl;
vector<int> lisr;

int main(){
	int n,d;
	cin>>n>>d;
	vals.resize(n);
	mp.resize(n);
	for (int i = 0; i<n; i++){
		cin>>vals[i];
		mp[i]=vals[i];
	}
	sort(mp.begin(),mp.end());
	mp.erase(unique(mp.begin(),mp.end()),mp.end());
	for (int i = 0; i<n; i++){
		vals[i]=lower_bound(mp.begin(),mp.end(),vals[i])-mp.begin();
	}
	
	Fenwick *fenl = new Fenwick(n+1, true);
	lisl.resize(n,0);
	int mx = 0;
	for (int i = 0; i<n; i++){
		//cout<<vals[i]<<'\n';
		int mxprev = fenl->query(vals[i]);
		lisl[i]=mxprev+1;
		fenl->update(vals[i]+1,lisl[i]);
		mx=max(mx,lisl[i]);
	}
	cout<<mx<<'\n';

}
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 181 ms 5644 KB Output is correct
2 Correct 180 ms 5436 KB Output is correct
3 Correct 179 ms 5496 KB Output is correct
4 Correct 181 ms 5528 KB Output is correct
5 Correct 116 ms 4600 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 46 ms 1528 KB Output is correct
2 Correct 46 ms 1656 KB Output is correct
3 Correct 46 ms 1532 KB Output is correct
4 Incorrect 30 ms 1400 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 88 ms 2940 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -