제출 #1346175

#제출 시각아이디문제언어결과실행 시간메모리
1346175Jawad_Akbar_JJHokej (COCI17_hokej)C++20
48 / 120
157 ms20156 KiB
#include <iostream>
#include <vector>
#include <array>
#include <algorithm>

using namespace std;
const int N = 1<<20;
int st[N], in[N];
vector<pair<int, int>> vec;
vector<int> lim[N];
vector<array<int, 3>> sub;

int main(){
	long long Ans = 0;
	int T, n;
	cin>>T>>n;

	for (int i=1;i<=n;i++){
		cin>>st[i]>>in[i];
		vec.push_back({st[i], i});
	}
	sort(rbegin(vec), rend(vec));

	lim[0] = {0, 0, 0, 0, 0, 0};
	for (int t=0, i = 0;t<T;t++){
		for (int j : lim[t]){
			sub.push_back({t, j, vec[i].second});
			lim[in[vec[i].second] + t].push_back(vec[i].second);
			Ans += 1LL * min(T - t, in[vec[i].second]) * vec[i].first;
			i++;
		}
	}

	cout<<Ans<<'\n';
	for (int i=0;i<6;i++)
		cout<<sub[i][2]<<' ';
	cout<<'\n';
	cout<<sub.size() - 6<<'\n';

	for (int i=6;i<sub.size();i++)
		cout<<sub[i][0]<<' '<<sub[i][1]<<' '<<sub[i][2]<<'\n';
	
}
#Verdict Execution timeMemoryGrader output
Fetching results...