Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma warning(disable:4996)
- #include<iostream>
- #include<stdio.h>
- #define Max 100
- using namespace std;
- void xoa(char a[], int vt) {
- int n = strlen(a);
- for (int i = vt; i < n; i++)
- {
- a[i] = a[i + 1];
- }
- a[n - 1] = '\0';
- }
- bool tontaiko(char k[], int so) {
- for (int i = 0; i < strlen(k); i++)
- {
- if (k[i] == ((char)so + '0'))
- return 1;
- }
- return 0;
- }
- void xoa1(char a[]) {
- for (int i = 0; i < strlen(a); i++)
- {
- if (a[i] == '1')
- {
- xoa(a, i);
- break;
- }
- }
- }
- void xoa2(char a[]) {
- for (int i = 0; i < strlen(a); i++)
- {
- if (a[i] == '2')
- {
- xoa(a, i);
- break;
- }
- }
- }
- void xoa3(char a[]) {
- for (int i = 0; i < strlen(a); i++)
- {
- if (a[i] == '3')
- {
- xoa(a, i);
- break;
- }
- }
- }
- int dem1(char g[]) {
- int dem = 0;
- for (int i = 0; i < strlen(g); i++)
- {
- if (g[i] == '1') dem++;
- }
- return dem;
- }
- int dem2(char g[]) {
- int dem = 0;
- for (int i = 0; i < strlen(g); i++)
- {
- if (g[i] == '2') dem++;
- }
- return dem;
- }
- int dem3(char g[]) {
- int dem = 0;
- for (int i = 0; i < strlen(g); i++)
- {
- if (g[i] == '3') dem++;
- }
- return dem;
- }
- void themso(char k[], int so, int vt,int soluong) {
- for (int i = vt; i < soluong; i++)
- {
- k[i] = (char)so + '0';
- }
- }
- int xuat_so_lan(char k[], int a, int b, int c) {
- int dem = 0;
- char g[Max];
- themso(g, 1, 0, a);
- themso(g, 2, a, b+a);
- themso(g, 3, b+a, c+b+a);
- g[a + b + c] = '\0';
- if (tontaiko(g, 1)&&dem1(g)!=1)
- {
- xoa1(g);
- dem++;
- }
- if (tontaiko(g, 2)&dem2(g) != 1)
- {
- xoa2(g);
- dem++;
- }
- if (tontaiko(g, 3) & dem3(g) != 1)
- {
- xoa3(g);
- dem++;
- }
- if (tontaiko(g, 1) && tontaiko(g, 2) && tontaiko(g, 3))
- {
- if (dem1(g) > dem2(g) && dem1(g )> dem3(g))
- {
- xoa1(g);
- xoa2(g);
- dem++;
- if (tontaiko(g, 1) && tontaiko(g, 3))
- {
- xoa1(g);
- xoa3(g);
- dem++;
- }
- if (tontaiko(g, 2) && tontaiko(g, 3))
- {
- xoa2(g);
- xoa3(g);
- dem++;
- }
- }
- else if (dem2(g) > dem1(g) && dem2(g) > dem3(g))
- {
- xoa2(g);
- xoa1(g);
- dem++;
- if (tontaiko(g, 2) && tontaiko(g, 3))
- {
- xoa1(g);
- xoa3(g);
- dem++;
- }
- if (tontaiko(g, 1) && tontaiko(g, 3))
- {
- xoa2(g);
- xoa3(g);
- dem++;
- }
- }
- else if (dem3(g) > dem2(g) && dem3(g) > dem1(g))
- {
- xoa3(g);
- xoa2(g);
- dem++;
- if (tontaiko(g, 3) && tontaiko(g, 1))
- {
- xoa1(g);
- xoa3(g);
- dem++;
- }
- if (tontaiko(g, 2) && tontaiko(g, 1))
- {
- xoa2(g);
- xoa3(g);
- dem++;
- }
- }
- else
- {
- if (dem1(g) == 1 && dem2(g) == 1 && dem3(g) == 1)
- {
- dem += 2;
- return dem;
- }
- else
- {
- dem += 4;
- return dem;
- }
- }
- }
- if (tontaiko(g, 1)&& tontaiko(g, 2)&& tontaiko(g, 3))
- {
- xoa1(g);
- xoa2(g);
- xoa3(g);
- dem++;
- }
- return dem;
- }
- int main() {
- int n;
- char a[Max];
- do
- {
- cout << "Nhap so truong hop: "; cin >> n;
- } while (n < 1 || n>500);
- for (int i = 0; i < n * 3; i+=3)
- {
- do
- {
- cout << "\nnhap 3 so lieu a, b, c: ";
- cin >> a[i] >> a[i + 1] >> a[i + 2];
- } while (a[i] < 0 || a[i]>10 || a[i + 1] < 0 || a[i + 1]>10 || a[i + 1] < 0 || a[i + 1]>10);
- }
- cout << n<<endl;
- for (int i = 0; i < n * 3; i += 3)
- {
- cout << a[i] << " " << a[i + 1] << " " << a[i + 2] << endl;
- }
- cout << "=========================================================="<<endl;
- for (int i = 0; i < n * 3; i += 3)
- {
- int k1, k2, k3;
- k1 = (int)(a[i]) - '0';
- k2 = (int)(a[i+1]) - '0';
- k3 = (int)(a[i+2]) - '0';
- cout << xuat_so_lan(a, k1, k2, k3)<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement