白駿11300号ATM



質問リンク

😊に答える


これは簡単なグリディ問題です.質問例から分かるように、ソート後に小さい人にATMを使わせておけば、誰もが最小限の時間を待つことができます.

😊 ソースコード

#include<iostream>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std;
vector<int> a;
int main() {

	int n;
	cin >> n;

	for (int i = 0; i < n; i++) {
		int abc;
		cin >> abc;
		a.push_back(abc);
	}

	sort(a.begin(), a.end());
	int cnt = 0;
	
		int flag = 0;
	while (1) {
		flag++;
		for (int i = 0; i < flag; i++)
		{
			cnt += a[i];
		}
		if (flag == a.size())break;
	}
	cout << cnt;
	return 0;
}