Submission #982568

# Submission time Handle Problem Language Result Execution time Memory
982568 2024-05-14T12:27:09 Z SmuggingSpun Global Warming (CEOI18_glo) C++14
Compilation error
0 ms 0 KB
#include<bits/stdc++.h>
#define taskname "glo"
using namespace std;
typedef long long ll;
template<class T>void maximize(T& a, T b){
	if(a < b){
		a = b;
	}
}
const int lim = 2e5 + 5;
const int INF = 2e9 + 1;
int n, X, a[lim];
namespace sub12{
	void solve(){
		int ans = 0;
		for(int i = 1; i <= n; i++){
			for(int j = i; j <= n; j++){
				for(int d = -X; d <= X; d++){
					vector<int>t(n + 1), f(n + 1, INF);
					for(int k = 1; k <= n; k++){
						t[k] = a[k];
					}
					for(int k = i; k <= j; k++){
						t[k] += d;
					}
					f[0] = -INF;
					for(int k = 1; k <= n; k++){
						int low = 0, high = n - 1, p;
						while(low <= high){
							int mid = (low + high) >> 1;
							if(f[mid] < t[k]){
								low = (p = mid) + 1;
							}
							else{
								high = mid - 1;
							}
						}
						f[++p] = t[k];
						maximize(ans, p);
					}
				}
			}
		}	
		cout << ans;	
	}
}
namespace sub4{
	void solve(){
		vector<int>f(n + 1, INF);
		f[0] = -INF;
		int ans = 0;
		for(int k = 1; k <= n; k++){
			int low = 0, high = n - 1, p;
			while(low <= high){
				int mid = (low + high) >> 1;
				if(f[mid] < a[k]){
					low = (p = mid) + 1;
				}
				else{
					high = mid - 1;
				}
			}
			f[++p] = t[k];
			maximize(ans, p);
		}
		cout << ans;
	}
}
int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	if(fopen(taskname".inp", "r")){
		freopen(taskname".inp", "r", stdin);
	}
	cin >> n >> X;
	for(int i = 1; i <= n; i++){
		cin >> a[i];
	}
	if(n <= 50){
		sub12::solve();
	}
	else if(X == 0){
		sub4::solve();
	}
}

Compilation message

glo.cpp: In function 'void sub4::solve()':
glo.cpp:63:13: error: 't' was not declared in this scope
   63 |    f[++p] = t[k];
      |             ^
glo.cpp: In function 'int main()':
glo.cpp:72:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   72 |   freopen(taskname".inp", "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~