Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8.
Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
#include <iostream> #include <cmath> using namespace std; int n, id, elementy; int tab[200]; int c[200][3]; bool spr[2005]; long long min_zaplata = 1000000000000000; long long z; void dec_to_bin(int liczba) { int i=0; while(liczba) //dop�ki liczba b�dzie r�na od zera { tab[i++]=liczba%2; liczba/=2; } /*for(int j=elementy-1;j>=0;j--) cout<<tab[j];*/ } int main() { ios_base::sync_with_stdio(0); cin >> n; id = 0; for(int i = 1; i <= n; i++) { for(int j = i; j <= n; j++) { cin >> c[id][0]; c[id][1] = i; c[id][2] = j; id++; } } /*id = 0; for(int i = 1; i <= n; i++) { for(int j = i; j <= n; j++) { cout <<c[id][0]<<" "<<c[id][1]<<" "<<c[id][2]<<"\n"; id++; } }*/ elementy = n*(n-1)/2; for(int i = 0; i <= pow(2,elementy); i++) { int a = i; int b = i >> 1; int d = a^b; //cout << a<<" "; dec_to_bin(d); //cout <<"\n"; z = 0; for(int j = 0; j <= n; j++) { spr[j] = 0; } for(int j = 0; j < elementy; j++) { if(tab[j] == 1) { z += c[j][0]; spr[c[j][1]-1] = 1; spr[c[j][2]] = 1; } } bool straznik = true; for(int j = 0; j <= n; j++) { if(spr[j] == 0) { straznik = false; break; } } if(straznik == true) { if(min_zaplata > z) { min_zaplata = z; /*cout <<min_zaplata<<" "; for(int j=elementy-1;j>=0;j--) cout<<tab[j]; cout <<"\n";*/ } } } cout << min_zaplata; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | #include <iostream> #include <cmath> using namespace std; int n, id, elementy; int tab[200]; int c[200][3]; bool spr[2005]; long long min_zaplata = 1000000000000000; long long z; void dec_to_bin(int liczba) { int i=0; while(liczba) //dop�ki liczba b�dzie r�na od zera { tab[i++]=liczba%2; liczba/=2; } /*for(int j=elementy-1;j>=0;j--) cout<<tab[j];*/ } int main() { ios_base::sync_with_stdio(0); cin >> n; id = 0; for(int i = 1; i <= n; i++) { for(int j = i; j <= n; j++) { cin >> c[id][0]; c[id][1] = i; c[id][2] = j; id++; } } /*id = 0; for(int i = 1; i <= n; i++) { for(int j = i; j <= n; j++) { cout <<c[id][0]<<" "<<c[id][1]<<" "<<c[id][2]<<"\n"; id++; } }*/ elementy = n*(n-1)/2; for(int i = 0; i <= pow(2,elementy); i++) { int a = i; int b = i >> 1; int d = a^b; //cout << a<<" "; dec_to_bin(d); //cout <<"\n"; z = 0; for(int j = 0; j <= n; j++) { spr[j] = 0; } for(int j = 0; j < elementy; j++) { if(tab[j] == 1) { z += c[j][0]; spr[c[j][1]-1] = 1; spr[c[j][2]] = 1; } } bool straznik = true; for(int j = 0; j <= n; j++) { if(spr[j] == 0) { straznik = false; break; } } if(straznik == true) { if(min_zaplata > z) { min_zaplata = z; /*cout <<min_zaplata<<" "; for(int j=elementy-1;j>=0;j--) cout<<tab[j]; cout <<"\n";*/ } } } cout << min_zaplata; return 0; } |