제출 #934358

#제출 시각아이디문제언어결과실행 시간메모리
934358tamir1Toys (CEOI18_toy)C++14
100 / 100
2123 ms86960 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,i,j,m,x,y;
vector<ll> a,b;
vector<set<ll>> s;
map<ll,ll> mp;
int main(){
	cin >> n;
	for(i=1;i*i<=n;i++){
		if(n%i!=0) continue;
		if(i*i==n){
			a.push_back(i);
			continue;
		}
		a.push_back(i);
		b.push_back(n/i);
	}
	for(i=b.size()-1;i>=0;i--) a.push_back(b[i]);
	for(i=0;i<a.size();i++) mp[a[i]]=i;
	m=a.size();
	s=vector<set<ll>> (m);
	for(i=0;i<m;i++){
		x=a[i];
		s[i].insert(x-1);
		for(j=0;j<i;j++){
			y=a[j];
			if(x%y!=0) continue;
			ll add=x/y-1;
			for(ll l:s[j]){
				s[i].insert(l+add);
			}
		}
	}
	cout << s[m-1].size() << "\n";
	for(ll i:s[m-1]) cout << i << " ";
}

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

toy.cpp: In function 'int main()':
toy.cpp:20:11: 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]
   20 |  for(i=0;i<a.size();i++) mp[a[i]]=i;
      |          ~^~~~~~~~~
#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...