题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <stdio.h>
#include <memory.h>
typedef struct{
int index;
int val;
} KeyVal;
int main() {
int n;
scanf("%d",&n);
KeyVal a[501],tmp;
memset( a , -1 , sizeof(KeyVal)*501 );
int i,j;
for( i=0 ; i<n ; i++) {
scanf("%d%d",&a[i].index,&a[i].val);
}
for( i=0 ; i < n ; i++ ){ //合并,去重
for( j=i+1 ; j<n ; j++ ){
if(a[i].index == a[j].index && a[i].index!=-1 ){
a[i].val += a[j].val;
a[j].index = -1;
//a[j].val = -1;
}
}
}
for( i=0 ; i < n ; i++ ){ //排序
for( j=i+1 ; j<n ; j++ ){
if(a[i].index > a[j].index && a[j].index!=-1 ){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
}
for( i=0 ; i<n ; i++){
if( a[i].index != -1 ){
printf("%d %d\n",a[i].index,a[i].val);
}
}
return 0;
}