codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
//AlgebraicExpression //cho 1 cay nhi phan, tinh ra ket qua cuoi cung #include <iostream> #include <cstring> #include <cstdlib> using namespace std; int N; int Number[1001], Firstchild[1001], Secondchild[1001]; char Operator[1001]; int main(int argc, char** argv) { int test_case; freopen("Testcase.txt", "r", stdin); for(test_case = 1; test_case <= 10; ++test_case) { int i; memset(Firstchild, 0, sizeof(int) * 1001); memset(Secondchild, 0, sizeof(int) * 1001); memset(Number, 0, sizeof(int) * 1001); memset(Operator, 0, sizeof(char) * 1001); cin >> N; int max; for(i = 0; i < N; i++) { int addr; char buf[10]; cin >> addr; cin >> buf; if ((buf[0] == '+') || (buf[0] == '-') || (buf[0] == '*') || (buf[0] == '/')) { Operator[addr] = buf[0]; cin >> Firstchild[addr] >> Secondchild[addr]; max = addr; } else Number[addr] = atoi(buf); } for(i = max; i >=1; i--) { if(Operator[i] == '+') Number[i] = Number[Firstchild[i]] + Number[Secondchild[i]]; if(Operator[i] == '-') Number[i] = Number[Firstchild[i]] - Number[Secondchild[i]]; if(Operator[i] == '*') Number[i] = Number[Firstchild[i]] * Number[Secondchild[i]]; if(Operator[i] == '/') Number[i] = Number[Firstchild[i]] / Number[Secondchild[i]]; } cout << "#" << test_case; cout << " " << Number[1] << endl;; } return 0; }
Private
[
?
]
Run code
Submit