Professional Documents
Culture Documents
20173174-Nguyễn Quang Huy-Buoi1-Tuan33
20173174-Nguyễn Quang Huy-Buoi1-Tuan33
1. #include<bits/stdc++.h>
2. using namespace std;
3. //tim uoc chung lon nhat cua a,b
4. int ucln(int a, int b) {
5. while (b != 0) {
6. int temp = b;
7. b = a % b;
8. a = temp;
9. }
10. return a;
11. }
12. int pour(int new_from, int new_to, int c)
13. int from = 0, to = 0;
14. int steps = 0;
15. while (from != c && to != c) {
16. int maxpour = min(from, new_to - to);
17. from -= maxpour;
18. to += maxpour;
19. if (maxpour != 0)
20. steps++;
21. if (from == c || to == c)
22. break;
23. if (from == 0) {
24. from = new_from;
25. steps++;
26. }
27. if (to == new_to) {
28. to = 0;
29. steps++;
30. }
31. }
32. return steps;
33. }
34. int waterjugbfs(int a, int b, int c) {
35. if (a < b) {
36. int temp = a;
37. a = b;
38. b = temp;
39. }
40. if (a < c)
41. return -1;
42. if (c % ucln(a, b) != 0)
43. return -1;
44. return min(pour(a, b, c), pour(b, a, c));
45. }
46. int main() {
47. int a, b, c;
48. int kq;
49.
50. cin >> a >> b >> c;
51. kq = waterjugbfs(a, b, c);
52. cout << kq << endl;
53. return 0;
54. }
//Training 2: Sort int
#include<iostream>
#include<algorithm>
int main(){
int n;
cin>>n;
int a[n];
cin>>a[i];
sort(a,a+n);
cout<<a[i]<<" ";
return 0;
//Training 2: PARENTHESES
#include <iostream>
#include <stack>
stack.push(c);
} else if (c == ')') {
if (stack.empty())
return 0;
else {
ktra = stack.top();
stack.pop();
if (ktra != '(')
return 0;
} else if (c == ']') {
if (stack.empty())
return 0;
else {
ktra = stack.top();
stack.pop();
if (ktra != '[')
return 0;
} else if (c == '}') {
if (stack.empty())
return 0;
else {
ktra = stack.top();
stack.pop();
if (ktra != '{')
return 0;
return 1;
int main() {
int n, j = 0;
cin >> n;
stack<char> stack;
int a[n];
string b;
while (j < n) {
while (!stack.empty()) {
stack.pop();
b.clear();
cin >> b;
return 0;
//Training 3:TSP
#include<bits/stdc++.h>
int **A;
bool *a, *b;
stack<int> route;
if (A[i][j] == 1000000)
return 0;
else
return 1;
void TSP(int i) {
continue;
b[j] = 0;
route.push(j);
cost += A[i][j];
if (route.size() < n)
TSP(j);
else {
cost += A[j][1];
minCost = cost;
}
cost -= A[j][1];
b[j] = 1;
route.pop();
cost -= A[i][j];
int main() {
A[i][j] = 1000000;
//thay thế chi phí max cho các con đường dc khai báo
scanf("%d", &from);
scanf("%d", &to);
scanf("%d", &A[from][to]);
}
a[i] = 1;
b[i] = 1;
route.push(1);
TSP(1);
printf("%d", minCost);
return 0;
//Training 3: KNAPSAC
#include <bits/stdc++.h>
void knapsack(int k) {
bk -= i * a[k];
if (k == n - 1)
fcur -= i * c[k];
bk += i * a[k];
a[i] = a[j];
a[j] = temp;
temp = c[i];
c[i] = c[j];
c[j] = temp;
int main() {
bk = b;
swap(i, j);
knapsack(0);
return 0;
//Training 3: BCA
#include <bits/stdc++.h>
vector<int> sorted;
bool conflict(int k) {
int i = 1, r = 1;
if (b[i] == rows[k].back())
for (unsigned int j = 0; j < rows[k].size(); j++)
if (rows[k][j] == a[i])
return true;
if (a[r] == rows[k].back())
if (rows[k][s] == b[r])
return true;
return false;
int conclude() {
max = rows[i].size();
return max;
void BCA(int k) {
rows[cols[sorted[k]][i]].push_back(sorted[k]);
rows[cols[sorted[k]][i]].pop_back();
else {
if (k < n - 1) {
BCA(k + 1);
if (check_opt)
return;
rows[cols[sorted[k]][i]].pop_back();
} else {
flag = 1;
if (_min == (n + m - 1) / m)
check_opt = 1;
rows[cols[sorted[k]][i]].pop_back();
if (A[i][j] == k)
return true;
return false;
void capacity(int k) {
cols[k].push_back(i);
int main() {
int temp;
cols.push_back(vector<int>());
rows.push_back(vector<int>());
scanf("%d", &temp);
A[i][0] = temp;
scanf("%d", &A[i][j]);
capacity(k);
if (cols[j].size() == (unsigned) i)
sorted.push_back(j);
scanf("%d", &amount);
scanf("%d", &a[i]);
scanf("%d", &b[i]);
BCA(0);
if (flag)
printf("%d", _min);
else
printf("-1");
return 0;