제출 #1035375

#제출 시각아이디문제언어결과실행 시간메모리
1035375ByeWorldToys (CEOI18_toy)C++14
100 / 100
1464 ms96084 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
// #define int long long
#define ll long long
#define pb push_back
#define fi first
#define se second
#define lf (id<<1)
#define rg ((id<<1)|1)
#define md ((l+r)>>1)
using namespace std;
typedef pair<int,int> pii;
typedef pair<int,pii> ipii;
const int MAXN = 2e5+15;
const int INF = 1e9+10;
void chmn(int &a, int b){ a = min(a, b); }

int n;
vector <int> vec;
map<int,int> idx;
set <int> s[MAXN];

signed main(){
    // ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> n;
    if(n==1){
    	cout << "1\n0\n"; exit(0);
    }
    for(int i=1; i*i<=n; i++){
    	if(n%i == 0){
    		vec.pb(i);
    		if(n != i*i) vec.pb(n/i);
    	}
    }
    sort(vec.begin(), vec.end()); 
    for(int i=0; i<vec.size(); i++) idx[vec[i]] = i;
    s[0].insert(0);
    for(int i=1; i<vec.size(); i++){
    	int x = vec[i];
    	for(int j=1; j*j<=x; j++){
    		// kali j
    		if(x%j != 0) continue;
    		int id = idx[j];
    		for(auto in : s[id]) s[i].insert(in+x/j-1);
    			
    		if(j!=1){
	    		id = idx[x/j];
	    		for(auto in : s[id]) s[i].insert(in+j-1);
	    	}
    	}
    }
    cout << s[vec.size()-1].size() << '\n';
    for(auto in : s[vec.size()-1]) cout << in << ' ';
    cout << '\n';
}

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

toy.cpp: In function 'int main()':
toy.cpp:36:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     for(int i=0; i<vec.size(); i++) idx[vec[i]] = i;
      |                  ~^~~~~~~~~~~
toy.cpp:38:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |     for(int i=1; i<vec.size(); 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...