Submission #334023

#TimeUsernameProblemLanguageResultExecution timeMemory
334023ronnithSpiderman (COCI20_spiderman)C++14
70 / 70
1303 ms6380 KiB
#include <bits/stdc++.h>

typedef long long ll;
#define mk make_pair
#define f first
#define s second

using namespace std;

int main(){
	int n, k;
	scanf("%d%d", &n,&k);
	int h[n];
	int mx = 0;
	for(int i = 0;i < n;i ++){
		scanf("%d", &h[i]);
		mx = max(mx, h[i]);
	}
	int fr[mx + 1];
	fill(fr, fr + mx + 1, 0);
	int cnt = 0;
	for(int i = 0;i < n;i ++){
		if(h[i] > k){
			fr[h[i]] ++;
			cnt ++;
		}
	}
	for(int i = 0;i < n;i ++){
		int fac = h[i] - k;
		if(fac == 0){
			printf("%d ", cnt);
		} else if(fac > 0){
			int ans = 0;
			for(int j = 1;j * j <= fac;j ++){
				if(fac % j == 0){
					ans += fr[j];
					if(j * j != fac)ans += fr[fac / j];
				}
			}
			if(fac % h[i] == 0)ans --;
			printf("%d ", ans);
		} else {
			printf("0 ");
		}
	}
	puts("");
	return 0;
}

Compilation message (stderr)

spiderman.cpp: In function 'int main()':
spiderman.cpp:12:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   12 |  scanf("%d%d", &n,&k);
      |  ~~~~~^~~~~~~~~~~~~~~
spiderman.cpp:16:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   16 |   scanf("%d", &h[i]);
      |   ~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...