제출 #844451

#제출 시각아이디문제언어결과실행 시간메모리
844451vjudge1Spiderman (COCI20_spiderman)C++17
63 / 70
110 ms19304 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
int32_t main(){
	int n,k;cin>>n>>k;
	vector<int> arr(n);
	vector<int> say(1000023,0);
	for (int i = 0; i < n; i++){
		cin>>arr[i];
		say[arr[i]]++;
	}
	int alr = 0;
	for (int i = k+1; i < say.size(); i++){
		alr+=say[i];
	}
	alr*=say[k];
	vector<int> ans(say.size());
	for (int i = k+1; i < say.size(); i++){
		for (int j = i; j < say.size(); j+=i){
			ans[j]+=say[i];
		}
	}
	for (int i = 0; i < n; ++i)
	{
		if (arr[i]==k){
			cout<<alr<<" ";
			continue;
		}
		if (arr[i]<k){
			cout<<0<<" ";
			continue;
		}
		if (k==0){
			cout<<ans[arr[i]-k]-1<<" ";
		}
		else cout<<ans[arr[i]-k]<<" ";
	}
	cout<<endl;
}

컴파일 시 표준 에러 (stderr) 메시지

spiderman.cpp: In function 'int32_t main()':
spiderman.cpp:13:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |  for (int i = k+1; i < say.size(); i++){
      |                    ~~^~~~~~~~~~~~
spiderman.cpp:18:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |  for (int i = k+1; i < say.size(); i++){
      |                    ~~^~~~~~~~~~~~
spiderman.cpp:19:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |   for (int j = i; j < say.size(); j+=i){
      |                   ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...