답안 #878566

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
878566 2023-11-24T18:09:39 Z ilhan_arda Spiderman (COCI20_spiderman) C++17
49 / 70
1014 ms 8212 KB
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define fi first
#define se second
#define pb push_back
#define endl "\n"
//~ #define int long long
using namespace std;
 
typedef tuple<int, int, int> iii;
typedef long long ll;
const int mod =998244353;
 
int n, k;
int a[300005], mp[1000005];
 
int32_t main(){
	fast;
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		mp[a[i]]++;
	}
	//~ sort(a+1, a+n+1);
	for(int i=1;i<=n;i++){
		if(a[i]<k){
			cout<<0<<" ";
			continue;
		}
		if(a[i]==k){
			int temp=n;
			for(int j=1;j<=n;j++){
				if(a[j]<=k)temp--;
			}
			for(int j=1;j<=mp[k];j++)cout<<temp<<" ";
			i+=mp[k]-1;
			continue;
		}
		int ans=0;
		a[i]-=k;
		for(int  j=1;j*j<=a[i];j++){
			if(a[i]/j*j==a[i]){
				if(j>k)ans+=mp[j];
				if(j*j!=a[i] && a[i]/j>k)ans+=mp[a[i]/j];
				
			}
		}
		a[i]+=k;
		cout<<ans<<" ";
	}
	cout<<endl;
}

# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 4700 KB Output is correct
2 Correct 6 ms 4700 KB Output is correct
3 Incorrect 263 ms 5584 KB Output isn't correct
4 Correct 766 ms 8128 KB Output is correct
5 Incorrect 307 ms 5428 KB Output isn't correct
6 Incorrect 877 ms 8204 KB Output isn't correct
7 Correct 344 ms 5740 KB Output is correct
8 Correct 342 ms 5576 KB Output is correct
9 Correct 1010 ms 8212 KB Output is correct
10 Correct 1014 ms 8212 KB Output is correct