这题输出是什么顺序啊!!!
  • 板块CF521D Shop
  • 楼主xiaobing
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/19 21:17
  • 上次更新2024/9/20 00:16:49
查看原帖
这题输出是什么顺序啊!!!
544756
xiaobing楼主2024/9/19 21:17

蒟蒻代码

//#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
#include<set>
#include<ctime>
#include<random>
#include<stack>
#define ll long long
#define lll __int128
#define ull unsigned long long
#define veci vector<int>
#define vecl vector<long long>
#define vecb vector<bool>
#define quei queue<int>
using namespace std;
const int N = 1e5 + 10, inf = 0x7FFFFFFF;
const ll INF = 0x7FFFFFFFFFFFFFFF;
int k, n, m;
struct node { int id, x, num, w; };
struct frac { int id, a, b; };
vector<node>ass, pls;
vector<frac>mul;
bool cmp(node a, node b) { return a.num > b.num; }
bool cmp2(frac a, frac b) { return 1ll * a.a * b.b > 1ll * a.b * b.a; }
int a[N];
void to_plus() {
	vector<node>t(k + 1);
	for (int i = 1; i <= k; i++)
		t[i].num = 0;
	for (auto e : ass) {
		int x = e.x, num = e.num - a[x];
		if (num > t[x].num)
			t[x] = { e.id,x,num,1 };
	}
	for (int i = 1; i <= k; i++)
		if (t[i].num > 0)pls.push_back(t[i]);
	return;
}
void to_mul() {
	vector<int>t(k + 1);
	for (int i = 1; i <= k; i++)
		t[i] = a[i];
	for (auto e : pls) {
		int x = e.x, num = e.num;
		mul.push_back({ e.id,num + t[x],t[x] });
		t[x] += num;
	}
	return;
}
int main() {
	//freopen("train.in", "r", stdin);
	//freopen("train.out", "w", stdout);
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	cin >> k >> n >> m;
	for (int i = 1; i <= k; i++)
		cin >> a[i];
	for (int i = 1; i <= n; i++) {
		int op, x, num; cin >> op >> x >> num;
		if (op == 1)ass.push_back({ i,x,num,1 });
		if (op == 2)pls.push_back({ i,x,num,1 });
		if (op == 3)mul.push_back({ i,num,1 });
	}
	to_plus();
	sort(pls.begin(), pls.end(), cmp);
	to_mul();
	sort(mul.begin(), mul.end(), cmp2);
	ll ans = 1;
	int len = min((int)mul.size(), m);
	cout << len << '\n';
	for (int i = 0; i < len; i++)
		cout << mul[i].id << " ";
	return 0;
}
2024/9/19 21:17
加载中...