Submission #940001

#TimeUsernameProblemLanguageResultExecution timeMemory
940001vjudge1Global Warming (CEOI18_glo)C++17
25 / 100
64 ms6836 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long
#define pb push_back
#define all(x) x.begin(),x.end()

const int INF = 1e18;

signed main(){

	ios_base::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	int n,x;
	cin >> n >> x;
	int a[n],b[n];
	for(int i = 0;i < n;i++){
		cin >> a[i];
		b[i] = a[i];
	}
	if(x == 0){
		vector<int> dp(n + 1,INF);
		for(int i = 0;i < n;i++){
			int h = lower_bound(all(dp),a[i]) - dp.begin();
			dp[h] = a[i];
		}
		int cnt = 0;
		for(int i = 0;i < n;i++){
			if(dp[i] == INF){
				break;
			}
			cnt++;
		}
		cout << cnt << "\n";
	} else if(n <= 50 && x <= 50){
		int ans = 0;
		for(int i = 0;i < n;i++){
			for(int j = i;j < n;j++){
				for(int k = -x;k <= x;k++){
					for(int q = i;q <= j;q++){
						a[q] += k;
					}
					vector<int> dp(n + 1,INF);
					for(int q = 0;q < n;q++){
						int h = lower_bound(all(dp),a[q]) - dp.begin();
						dp[h] = a[q];
					}
					int cnt = 0;
					for(int q = 0;q < n;q++){
						if(dp[q] == INF){
							break;
						}
						cnt++;
					}
					ans = max(ans,cnt);
					for(int q = i;q <= j;q++){
						a[q] -= k;
					}
				}
			}
		}
		cout << ans << "\n";
	}
	
}

Compilation message (stderr)

glo.cpp: In function 'int main()':
glo.cpp:17:11: warning: variable 'b' set but not used [-Wunused-but-set-variable]
   17 |  int a[n],b[n];
      |           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...