Submission #1317481

#TimeUsernameProblemLanguageResultExecution timeMemory
1317481thuhienneLottery (CEOI18_lot)C++20
45 / 100
70 ms16500 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

#define thuhien ""
#define re exit(0);

int n,l,maxseg;
int arr[10009];

int dis[2009][2009];

vector <int> pos[2009];

vector <int> X;

void solve(int i,int j) {
	for (int a = 1;a <= l;a++) {
		if (i == 0 || j == 0) break;
		
		dis[i][j]++;
		
		i--,j--;
	}
}

int cnt[2009];

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(nullptr);
	if (fopen(thuhien".inp","r")) {
	   freopen(thuhien".inp","r",stdin);
	   freopen(thuhien".out","w",stdout);
	}
	
	
	cin >> n >> l;
	int maxseg = n - l + 1;
	
	for (int i = 1;i <= n;i++) {
		cin >> arr[i];
		X.push_back(arr[i]);
	}
	
	sort(X.begin(),X.end());
	X.resize(unique(X.begin(),X.end()) - X.begin());
	for (int i = 1;i <= n;i++) {
		arr[i] = lower_bound(X.begin(),X.end(),arr[i]) - X.begin() + 1;
		pos[arr[i]].push_back(i);
	}
	
	for (int i = 1;i <= X.size();i++) {
		for (int x : pos[i]) {
			for (int y : pos[i]) {
				solve(x,y);
			}
		}
	}
	
	for (int i = 1;i <= maxseg;i++) {
		for (int j = 1;j <= maxseg;j++) dis[i][j] = l - dis[i][j];
		
		
		
		for (int j = 1;j <= maxseg;j++) cnt[dis[i][j]]++;
		int count = 0;
		for (int j = 0;j <= l;j++) {
			for (int tt = 1;tt <= cnt[j];tt++) dis[i][++count] = j;
			cnt[j] = 0;
		}
		
	}
	
//	for (int i = 1;i <= maxseg;i++) {
//		for (int j = 1;j <= maxseg;j++) {
//			cout << dis[i][j] << " ";
//		}
//		cout << '\n';
//	}
//	re;
	
	int q;cin >> q;
	while (q--) {
		int k;cin >> k;
		for (int i = 1;i <= maxseg;i++) {
			int num = upper_bound(dis[i] + 1,dis[i] + 1 + maxseg,k) - dis[i] - 1;
			cout << num - 1 << " ";
		}
		cout << '\n';
	}

}

Compilation message (stderr)

lot.cpp: In function 'int main()':
lot.cpp:34:19: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |            freopen(thuhien".inp","r",stdin);
      |            ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
lot.cpp:35:19: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 |            freopen(thuhien".out","w",stdout);
      |            ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#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...