Thuat Toan Tim Kiem Tot Nhat

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

#include<bits/stdc++.

h>
using namespace std;
char s, e;
unordered_map<char,int>Diem; //first: diem, second: tr?ng
string DuongDi = "";
list<char> DiemNoi[100]; // DS diem noi toi cac diem khac
priority_queue<pair<int,char>,vector<pair<int,char>>,greater<pair<int,char>>>
DanhSach;

void RunAlgorithm(){
fstream f;
f.open("result.txt", ios::out);
f<<"Phat trien TT Trang thai ke Danh sach L\n";
while(s != e){
DuongDi += s;DuongDi += "->";
f<<" "<< s << "-" << Diem[s] <<" ";
cout<<" "<< s << "-" << Diem[s] <<" ";
for(auto i:DiemNoi[s]){
DanhSach.push({Diem[i],i});
f<< i << "-" << Diem[i]<<" ";
cout<< i << "-" << Diem[i]<<" ";
}
f<< " ";
cout<< " ";

priority_queue<pair<int,char>,vector<pair<int,char>>,greater<pair<int,char>>>
tmp = DanhSach;
while(tmp.size()){
pair<int,int> trunggian = tmp.top(); tmp.pop();
f<<(char)trunggian.second<< "-" << trunggian.first<<" ";
cout<<(char)trunggian.second<< "-" << trunggian.first<<" ";
}
s = DanhSach.top().second;DanhSach.pop();
f<<endl;
cout<<endl;
}
f<<" "<< s << "-" << Diem[s] <<" TTKT-DUNG\n";
cout<<" "<< s << "-" << Diem[s] <<" TTKT-DUNG\n";
DuongDi += e;
f<<DuongDi;
cout<<DuongDi;
f.close();
}

void ScanFile(){
fstream f;
f.open("data.txt", ios::in);
if (f.fail())
{
cout << "Failed to open this file!";
return;
}
string line;
int tmp = 0; // 0: trong so; 1: noi voi cac diem
while (!f.eof())
{
getline(f, line);
if(line.substr(0,4) == "TTD ") s = line.back();
else if(line.substr(0,4) == "TTKT") e = line.back();
else {
int trongso = atoi(line.substr(line.find(",")+1,line.find(")")-
1).c_str()); // atoi: ham chuyen doi day char sang so, c_str: ham chuyen string
sang day char
int diem = line.find("(")+1; // vi tri cua diem A trong data
Diem[line[diem]] = trongso;
cout<<line[diem]<< " "<< trongso<<" ";
int vtDau = line.find(">")+1, vtCuoi = line.size();
if(vtDau!=0){
for(int i= vtDau; i<vtCuoi; i++)
{
if(line[i] != ' ')
DiemNoi[line[diem]].push_back(line[i]),cout<<line[i]<<" ";
}
}
cout<<"\n";
}
}
f.close();
}

int main(){
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
ScanFile();
RunAlgorithm();
}

You might also like