Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by mika ( 6 years ago )
//Marcopolo ingin membuat pos dagang antar negara.
//Setiap negara memiliki 3 jenis alat tukar yang bisa digunakan untuk berdagang.
//Dua negara bisa langsung berdagang apabila memiliki alat tukar yang sama.
//Bila dua negara tidak memiliki alat tukar yang sama tapi ada negara ketiga yang memiliki alat tukar yang sama dengan kedua negara,
//dua negara tersebut bisa berdagang melalui negara ketiga.
//Apabila tidak ada negara ketiga yang memiliki alat tukar yg sama dengan dua negara tersebut maka Marcopolo harus
//membujuk pemerintahan untuk menambah jenis alat tukar. Penambahan jenis alat tukar akan memakan 1 ongkos politik.
//Bila di dunia ada x negara dan y jenis alat tukar maka bantulah Marcopolo mengatur agar semua negara bisa berdagang
//dan hitung ongkos politiknya!
//
//Contoh: ada 4 negara dan ada 7 jenis alat tukar
//
//Negara A [1, 2, 3]
//Negara B [2, 3, 4]
//Negara C [4, 5, 6]
//Negara D [5, 6, 7]
//
//Yang bisa langsung berdagang: Negara A&B, C&D, E&F
//Yang bisa berdagang melalui negara ketiga: Negara A&C via negara B, Negara B&D via negara C
//Karena negara A&D tidak dapat berdagang maka Marcopolo harus menambah alat tukar negara D dengan alat tukar 3
//Ongkos: 1 politik
//
//*) Apakah inputnya dan bagaimana cara outputnya cari sendiri
//**) Gunakan array
//*) Jenis alat tukar di tiap negara itu random (kebetulan contohnya aja urut)
//**) Nama negara boleh diganti angka

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;


int main(){
    srand(time(NULL)); //----> untuk seed random
    int negara, mt;
    //INISIALISASI
    cout<<"Inputkan Banyak Negara : ";
    cin>> negara;
    cout<<"Inputkan banyak mata uang : ";
    cin>>mt;
    char nama[negara];
    bool cek[negara][50];
    int dunia[negara][3];
    for(int i = 0 ; i < negara ; i++){
        for(int j = 0 ; j < negara ; j++){
            cek[i][j] = true;
        }
    }

    for(int i = 0 ; i < negara ; i++){
        do{
            dunia[i][0] = rand() % mt+1; //1 2 3 4.... mt
            dunia[i][1] = rand() % mt+1; //1 2 3 4.... mt
            dunia[i][2] = rand() % mt+1; //1 2 3 4.... mt
        }
        while(dunia[i][0] == dunia[i][1] || dunia[i][1]==dunia[i][2] || dunia[i][2] == dunia[i][0]);
    }
    for(int i = 0 ; i < negara ; i++){
        nama[i] =(char)(i + 65);
    }
    for(int i = 0 ; i < negara ; i++){
        cout<<nama[i]<<" : ";
        for(int j = 0 ; j < 3 ; j++){
            cout<<dunia[i][j]<<" ";
        }
        cout<<endl;
    }
    //PENGECEKAN
    //antar 2 negara
    bool connect;
    int sim;
    for(int i = 0 ; i < negara ; i++){
        for(int j = i+1 ; j < negara; j++){
            connect = false;
            ///////PENGECEKAN DALAM///////
            for(int p = 0 ; p < 3 ; p++){
                for(int q = 0 ; q < 3 ; q++){
                    if(dunia[i][p] == dunia[j][q]){
                        connect = true;
                    }
                }
            }
            cek[i][j] = connect;
            /////////////////////////////

        }
    }
    for(int i = 0 ; i < negara ; i++){
        for(int j = i+1 ; j < negara ; j++){
            cout<<cek[i][j]<<" ";
        }
        cout<<endl;
    }
    //lintas negara
    cout<<"Lintas Negara : "<<endl;
    int tambahan = 0;
    for(int i = 0 ; i < negara ; i++){
        for(int j = i+1 ; j < negara ; j++){
            if(!cek[i][j]){
                //cek
                bool ks = false;
                for(int k = 0 ; k < negara ; k++){
                    if(cek[i][k] && cek[j][k] && k != i && k != j){
                        ks = true;
                        cout<<nama[i]<<">>"<<nama[k]<<"<<"<<nama[j]<<endl;
                    }
                }
                if(!ks){
                    tambahan++;
                    cout<<nama[i]<<" Tidak Terhubung Dengan "<<nama[j]<<endl;
                }
//                cout<<endl;
            }
        }
    }
    cout<<tambahan;

    return 0;
}

 

Revise this Paste

Children: 112565
Your Name: Code Language: