Chào mọi người. Mình mới biết spoj nên vào làm thử. Chạy mãi mà nó ko cho cái gì. Có lẽ là mình không biết cách post theo yêu cầu của đề chăng. Mọi người ai rảnh xem vấn đề ở đâu với nhé. Bài BUS. CODE C++:


#include<iostream>
#include<stdlib.h>
using namespace std;

struct timepass {
    int time;
    struct timepass *next;
};

struct bus_node {
    int time_leave;
    int number_pas;
    timepass *passenger;
};

int min(int x, int y) {
    return ((x > y)&&(y>0)) ? y : x;
}

 

timepass *creat_timewait(int time) {
    timepass *node = (timepass*)malloc(sizeof(timepass));
    node->time = time;
    node->next = NULL;
    return node;
}


bus_node **nhapdulieu(int numbus) {

    bus_node **node = (bus_node**)calloc(numbus, sizeof(bus_node*));
    for (int i = 0; i < numbus; i++)
    {
        node[i] = (bus_node*)malloc(sizeof(bus_node));
    }
     
    timepass *p=(timepass*)malloc(sizeof(timepass));
    int temp = 0;
    int time = 0;

    for (int i = 0; i < numbus; i++)
    {
        cout << "-Thoi gian di chuyen tu diem bus " << i << " den diem " << i + 1 << " : ";
        cin >> temp;
        node[i]->time_leave = temp;
        cout << "-So luong hanh khach cho tai diem bus " << i << " : ";
        cin >> temp;
        node[i]->number_pas = temp;
        for (int j = 0; j < temp; j++)
        {
            cout << "\t-Nhap thoi diem den cua hanh khach thu " << j + 1 << " : ";
            cin >> time;
            if (j == 0) {
                p = creat_timewait(time);
                node[i]->passenger = p;
                continue;
            }
            p->next = creat_timewait(time);
            p = p->next;
        }
    }


    return node;
}

int chuanhoa(bus_node **node, int numbus,int &timecost) {
    timepass *p;
    int timemin = 9999;
    for (int i = 1; i < numbus; i++)
    {
        p = node[i]->passenger;
        timecost += node[i-1]->time_leave;
        while (p != NULL)
        {
            (p->time) -= timecost;
            timemin=min(timemin, (p->time));
            p = p->next;
        }
    }

    timecost += node[numbus-1]->time_leave;
    return timemin;
}

int timecost_min(bus_node **node,int numbus,int numchair,int &timecost,int timemin) {

    timepass *p;
    
    for (int i = 0; i < numbus; i++)
    {
        p = node[i]->passenger;
        while (p != NULL)
        {
            if ((p->time) == 0)
            {
                numchair--; 
            }
            (p->time) -= timemin;
            p = p->next;
        }
    }

    if (numchair <= 0) return timecost;
    timecost += timemin;
    return timecost_min(node, numbus,numchair, timecost, timemin);
}


int main() {
    int numbus = 0;
    int numchair = 0;
    int timemin = 99999;
    int timecost = 0;
    cout << "Nhap so luong diem bus: ";
    cin >> numbus;
    cout << "Nhap so luong ghe: ";
    cin >> numchair;
    
    bus_node **node = nhapdulieu(numbus);
    timepass *p,*p1;
    
    timemin = chuanhoa(node, numbus, timecost);
    timecost=timecost_min(node, numbus, numchair, timecost, timemin);
    cout << "timecost_min: " << timecost;
    

    for (int i = 0; i < numbus; i++)
    {
        p = node[i]->passenger;
        while (p != NULL)
        {
            p1 = p;
            p = p->next;
            free(p1);
        }
    }
    free(node);
    cout << "\n___________________\n";
    system("pause");
    return 0;
}

Mình chạy trên máy mình được mà khi nộp bài k biết bị sao. Mình làm trên ViSual 2015

Bạn đọc quy định của vn.spoj.com sẽ rõ:
http://vn.spoj.com/embed/rules/

Vấn đề nằm ở cách bạn đọc + ghi kết quả. Việc đọc ghi phải theo format đề bài đưa ra và không được viết thêm những thứ khác.
Ví dụ bài trên bạn đọc vào numbus thì chỉ cần cin >> numbus;, chứ không cần cout << "Nhap so luong diem bus: ";
    cin >> numbus;, bởi vì đề bài không yêu cầu bạn in ra "Nhap so luong diem bus: " mà chỉ bảo bạn đọc vào numbus thôi.

Ví dụ nữa ở bài trên là lúc in kết quả, bạn chỉ cần in ra như đề bài chỉ định, không cần phải in ra xâu để trang trí làm gì. Và kết thúc chương trình thì không cần pause.

Khi làm bài bạn nên xem test ví dụ trong đề bài để hiểu rõ input, output.

Trả lời xuanan_nd
  Hiện bài gốc

thanks bạn nhé mình test được rồi :). Mong bạn nào lần sau mà gặp vấn đề như mình có thể vào đây tham khảo câu trả lời của bạn.