---
# System prepended metadata

title: Viết trình chấm trên Visual Studio Code

---

---
# Viết trình chấm trên Visual Studio Code
---
<style>
    .markdown-body { max-width: 2048px; }
</style>

$\Huge \text{Viết trình chấm trên Visual Studio Code}$

--------------------

Chào mọi người, hôm nay mình vừa ngồi lại để code lại trình chấm trên VS code. Mình cứ tưởng khó lắm cơ nhưng hóa ra cũng chẳng khác trên Code Block là mấy.

Đầu tiên thì có vài cái mà lâu quá mình không xài nên mình quên mất :penguin: : 
1.  ***mt19937*** : đây là hàm random, khai báo thì kiểu ![](https://i.imgur.com/HhxXe3N.png) là xong
dùng thì cũng giống như hàm random, gọi ra là được.
2.  ***ofstream*** : hỗ trợ nhập vào file, gọi ra thì ***f.open(tên_file)***, ghi vào file thì phải ***f << dữ_liệu*** chứ không dùng cout. Xuất xong thì đóng file lại ***f.close()***.
3.  Chạy chương trình bằng ***system()*** : 
   ![](https://i.imgur.com/3Y1DwvS.png)
   Trong đó ***codechuan*** và ***code_cua_manh*** là 2 tệp ***.exe*** của 2 code được chuẩn bị trước
   ![](https://i.imgur.com/c33glLj.png)

    Để có 2 cái ***.exe*** của code của bản thân và code chuẩn thì phải build trước nó mới xuất hiện.
    
4. So sánh 2 tệp với nhau : 
![](https://i.imgur.com/6hBDEus.png)



Rồi còn lại là phần thân chương trình, chi tiết code ở dưới này nè : 
:::spoiler
```cpp=
#include<bits/stdc++.h>
#include<algorithm>
#include<vector>
#define rep(i, a, b) for (int i = (a); i <= (b); ++i) 
#define rev(i, a, b) for (int i = (a); i >= (b); --i) 
#define ll long long
#define pii pair<int, int>
#define pb push_back
#define fi first
#define se second

using namespace std;
const string input = "H:\\file_txt\\input.txt";
const string kq_cua_manh = "H:\\file_txt\\output.txt";
const string ans = "H:\\file_txt\\ans.txt";
const string code_cua_manh = "H:\\code\\code_cua_manh\\code.exe";
const string code_chuan = "H:\\code\\code_cua_manh\\code_chuan.exe";
const int nTest = 100;
mt19937 rd(time(NULL));

ll rad(ll l, ll h)
{
    assert(l <= h);
    return l + rd() % (h - l + 1);
}

ofstream e;
int main()
{
    rep(iTest, 1, nTest)
    {
        e.open(input.c_str());
        // sinh test here
        //
        e.close();

        // chay 2 code
        system(code_chuan.c_str());
        system(code_cua_manh.c_str());

        // so sanh kq
        if (system(("fc " + kq_cua_manh + " " + ans).c_str()) != 0)
        {
            cout << "Test " << iTest << ": WRONG!\n";
            return 0;
        }
        cout << "Test " << iTest << ": CORRECT!\n";
    }
}
```
:::

* Lưu ý : những đường dẫn trong code trên là mình tự set up cho bản thân, bạn hãy tùy chỉnh lại cho phù hợp nhé!
 

