栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1075 PAT Judge (25 分)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1075 PAT Judge (25 分)

1075 PAT Judge (25 分)
#include 
#include 
using namespace std;
struct node{
	int id, total, ret, f;
	int s[10];
}a[10100], b[10100];
int p[10], vis[10100];
bool cmp(node x, node y){
	if(x.total != y.total)
		return x.total > y.total;
	else if(x.ret != y.ret)
		return x.ret > y.ret;
	else if(x.id != y.id)
		return x.id < y.id; 
}
int main() {
	int n, k, m, ret = 1;
	cin >> n >> k >> m;
	for(int i = 1; i <= n; ++i)
		for(int j = 1; j <= k; ++j)
			a[i].s[j] = -1;
	for(int i = 1; i <= k; ++i)
		cin >> p[i];
	while(m--){
		int x, y, z;
		cin >> x >> y >> z;
		a[x].id = x;
		a[x].s[y] = max(a[x].s[y], z);
		if(z == -1)
			a[x].s[y] = max(a[x].s[y], 0);
		else
			a[x].f = 1; 
	}
	for(int i = 1; i <= n; ++i){
		if(a[i].f){
			b[ret] = a[i];
			for(int j = 1; j <= k; ++j){
				if(b[ret].s[j] != -1){
					b[ret].total += b[ret].s[j];
					if(b[ret].s[j] == p[j])
						b[ret].ret++;
				}
			}
			ret++;
		}
	}
	sort(b + 1, b + ret, cmp);
	int r = 0, net = 1;
	for(int i = 1; i < ret; ++i){
		if(b[i].total == b[i - 1].total){
			net++;
			printf("%d ", r);
		}
		else{
			r += net; net = 1;
			printf("%d ", r);
		}
		printf("%05d %d ", b[i].id, b[i].total);
		for(int j = 1; j <= k; ++j){
			if(b[i].s[j] != -1)
				cout << b[i].s[j];
			else
				cout << "-";
			if(j != k)
				cout << " ";	
		}
		cout << endl;
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/655439.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号