我也因为不按顺序输出WA了8个点,但我用的方法和答案的方法不同,不能按答案要求的顺序输出。附代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
struct hehe{
int su,nu;
}a[100005];
bool cmp(hehe x,hehe y)
{
return x.su<y.su;
}
int n,c;
int main()
{
scanf("%d%d",&n,&c);
for (int i=1; i<=c; i++)
{
scanf("%d",&a[i].su);
a[i].nu=i;
}
sort(a+1,a+c+1,cmp);
for (int i=1; i<c&&a[c].su!=0; i++)
{
a[c].su-=a[i].su;
while (a[i].su--)
printf("%d %d\n",a[i].nu,a[c].nu);
for (int j=c-1; a[j].su>a[j+1].su&&j>i; j--)
swap(a[j],a[j+1]);
}
return 0;
}
```
by Lyx2005 @ 2019-07-08 12:38:12
>(不过这里没有spj)。
by 蒟蒻lxy @ 2019-09-05 17:47:15