记录编号 192459 评测结果 AAAAAAAAAA
题目名称 [USACO Mar08] 珍珠分对 最终得分 100
用户昵称 Gravatar0 是否通过 通过
代码语言 C++ 运行时间 0.048 s
提交时间 2015-10-11 07:16:42 内存使用 1.08 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>

using namespace std;

const int MAXN=100010; 

int n,c,tot;
struct BEAD{
	int sum,col;
	bool friend operator <(BEAD a,BEAD b) {
		return a.sum<b.sum;
	}
}a[MAXN];

priority_queue<BEAD> q;

void init(){
	int i;
	scanf("%d%d",&n,&c);
	for(i=1;i<=c;++i) {
		scanf("%d",&a[i].sum);
		a[i].col=i;
		tot+=a[i].sum;
	}
	for(i=1;i<=c;++i) q.push(a[i]);
	for(i=1;i<=tot/2;++i) {
		BEAD e=q.top();q.pop();
		BEAD x=q.top();q.pop();
		printf("%d %d\n",e.col,x.col);
		e.sum--;
		x.sum--;
		if(e.sum)q.push(e);
		if(x.sum)q.push(x);
	}
}
int main(){
	freopen("ppairing.in","r",stdin);
	freopen("ppairing.out","w",stdout);
	init();	
}