记录编号 |
192459 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO Mar08] 珍珠分对 |
最终得分 |
100 |
用户昵称 |
0 |
是否通过 |
通过 |
代码语言 |
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();
}