Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int n,m;
- int v[110];
- int t[11010];
- int s[11010];
- const int nil = -12377;
- int main() {
- cin >> n >> m;
- for(int i = 0; i < n;i++)cin >> v[i];
- int sum = 0;
- for(int i = 2; i < n;i++)sum += v[i];
- int ta = sum - (m - (v[0] - v[1]));
- cout <<" OIK "<< ta << endl;
- t[0] = -1;
- for(int i = 1; i <= ta;i++)t[i] = nil;
- for(int i = 2; i < n;i++){
- for(int j = ta - 1; j >= 0; j--){
- if(t[j] != nil){
- if(t[j + 2 * v[i]] == nil)t[j + 2 * v[i]] = i;
- if(t[ta] != nil)break;
- }
- }
- if(t[ta] != nil)break;
- }
- s[0] = 1, s[1] = -1;
- for(int i = 2; i < n;i++)s[i] = 1;
- int cpy = ta;
- do{
- if(!cpy)break;
- s[t[cpy]] = -1;
- cpy -= v[t[cpy]] * 2;
- }while(true);
- cpy = n - 1;
- int c = 0;
- do{
- while(s[cpy] == -1)cpy--;
- if(!cpy)break;
- int aux = 0;
- while(s[cpy] == 1)cpy--,aux++;
- cout << "MI CPY " << cpy << " " << aux << endl;
- for(int i = 1; i <= aux;i++)cout << cpy + 1 << "\n",c++;
- cpy--;
- }while(true);
- for(int i = 0; i < n - 1 - c;i++)cout << "1\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement