https://ac.nowcoder.com/acm/contest/11257/F
贪心
using namespace std;
typedef long long ll;
ll n, m, t[100005];
int main(){
    scanf("%lld%lld", &n, &m);
    ll sum = 0, mx = 0, tmax = 0;
    for (int i = 1; i <= n; ++i) {
        scanf("%lld", &t[i]);
        mx = max(mx, t[i]);
        sum += t[i];
    }
    // 取煎最长时间用的牛排与平均时间(总的时间加起来在m个锅中的平均时间)的最大值
    ll avg = sum % m == 0? sum / m: sum / m + 1;
    tmax = max(mx, avg);
    // 对于任意一个牛排t[i] <= tmax
    // 所以如果要用两个锅时,当前锅后部分与下一个前面部分不会有交集
    ll nowpan = 1, nowtime = 0;
    for (int i = 1; i <= n; ++i) {
        // 当前锅用的时间达到均值时,开始换锅
        if(nowtime == tmax){
            nowtime = 0;
            nowpan++;
        }
        if(nowtime + t[i] <= tmax){
            printf("1 %lld %lld %lld\n", nowpan, nowtime, nowtime + t[i]);
            nowtime += t[i];
        }else{
            printf("2 ");
            // 当前锅放不下的部分,放下一个锅的前面部分
            printf("%lld 0 %lld ", nowpan + 1, t[i] - (tmax - nowtime));
            printf("%lld %lld %lld\n", nowpan, nowtime, tmax);
            nowpan++; nowtime = t[i] - (tmax - nowtime);
        }
    }
    return 0;
}                
                










