Submission #99384

# Submission time Handle Problem Language Result Execution time Memory
99384 2019-03-03T10:56:37 Z Ort Hokej (COCI17_hokej) C++11
120 / 120
245 ms 18520 KB
#include<iostream>
#include<algorithm>
#include<vector>
#define MAX 500010
#define ll long long

using namespace std;

bool cmp(const pair<pair<int,int>,int> &a, const pair<pair<int,int>,int> &b) {
	if(a.first.first==b.first.first) return a.second < b.second;
	else return a.first.first>b.first.first;
}

int m, n, strength, endurance, id, t, _time, time_passed, block, sub, last;
ll total;
vector<pair<pair<int,int>, int> > players;
vector<int> starters;
vector<pair<int,int> > sol[MAX];

int main() {
	cin.sync_with_stdio(0); cin.tie(0);
	cin.exceptions(cin.failbit);
	cin >> m >> n; _time = m;
	for(int i=1;i<=n;i++) {
		cin >> strength >> endurance;
		players.push_back({{strength,endurance},i});
	}
	sort(players.begin(),players.end(),cmp);
	while(t<n && block<6) {
		strength = players[t].first.first;
		endurance = players[t].first.second;
		id = players[t].second;
		if(endurance==0) {
			t++;
			continue;
		}
		_time = min(endurance, m-time_passed);
		if(time_passed==0 && starters.size()<6) {
			starters.push_back(id);
		}
		else if(block!=5 && endurance==m) {
			block++;
			starters.push_back(id);
			total += (ll)m*strength;
			t++;
			continue;
		}
		else {
			sub++;
			sol[time_passed].push_back({last,id});
		}
		time_passed += _time;
		total += (ll)_time*strength;
		players[t].first.second -= _time;
		last = id;
		if(time_passed==m) {
			block++;
			time_passed = 0;
		}
	}
	cout << total << "\n";
	for(int i=0;i<6;i++) cout << starters[i] << " ";
	cout << "\n" << sub << "\n";
	for(int i=0;i<m;i++) {
		for(int j=sol[i].size()-1;j>=0;j--) {
			cout << i << " " << sol[i][j].first << " " << sol[i][j].second;
			cout << "\n";
		}
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 12 ms 12160 KB Output is correct
2 Correct 13 ms 12288 KB Output is correct
3 Correct 23 ms 12608 KB Output is correct
4 Correct 14 ms 12032 KB Output is correct
5 Correct 19 ms 12412 KB Output is correct
6 Correct 17 ms 12288 KB Output is correct
7 Correct 17 ms 12416 KB Output is correct
8 Correct 45 ms 13816 KB Output is correct
9 Correct 245 ms 18404 KB Output is correct
10 Correct 221 ms 18520 KB Output is correct