Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <fstream>
- using namespace std;
- ifstream in("input.txt");
- ofstream out("output.txt");
- int ans = 7;
- vector<int> res;
- void rec(set<int> a, vector<int> dist){
- /*for (int t : dist) {
- cout << t << " ";
- }
- cout << endl;
- for (int v : a) {
- cout << v << " ";
- }
- cout << endl<< ":" << endl;*/
- if(a.size() == 0){
- if(dist.size() < ans){
- res = dist;
- ans = dist.size();
- }
- return;
- }
- if(dist.size() >= ans){
- return;
- }
- for(int i = 2; i <= 20; ++i){
- set<int> temp;
- bool flag = false;
- for(int j : a){
- if (j >= i)
- flag = true;
- if(j / i + j % i > 1) temp.insert(j / i + j % i);
- }
- if (flag) {
- dist.push_back(i);
- rec(temp, dist);
- dist.pop_back();
- }
- }
- }
- int main() {
- string s;
- vector<int> dist;
- int counter = 0;
- set<int> a;
- while(getline(in, s)){
- for(char i : s){
- if(i == ' '){
- ++counter;
- }
- else{
- if(counter > 1){
- a.insert(counter);
- }
- counter = 0;
- }
- }
- if(counter > 1){
- a.insert(counter);
- }
- counter = 0;
- }
- for (int v : a) {
- cout << v << " ";
- }
- cout << endl;
- rec(a, dist);
- out << res.size() << endl;
- for(int i = 0; i < res.size(); ++i){
- out << res[i] << " ";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment