1 条题解
-
0
C :
#include <stdio.h> #include <stdlib.h> typedef struct _Link { int Id; int Score; struct _Link * Prev; struct _Link * Next; }Link,*PLink; void input(PLink * nml,int nm) { int i=0; for(;i<nm;++i) { PLink l =(PLink)malloc(sizeof(Link)); if(*nml) { (*nml)->Next = l; l->Prev = (*nml); l->Next = NULL; (*nml)= (*nml)->Next ; } else { (*nml) = l; l->Prev=NULL; l->Next = NULL; } scanf("%d %d",&((*nml)->Id),&((*nml)->Score)); } } PLink merge(PLink* nl,PLink* ml,int n,int m) { PLink l = n<m? *nl:*ml; while((*nl)->Prev)*nl=(*nl)->Prev; while((*ml)->Prev)*ml=(*ml)->Prev; if(n<m) { l->Next= *ml; (*ml)->Prev = l; return *nl; } l->Next = *nl; (*nl)->Prev = l; return *ml; } void sort(PLink h) { PLink i,j; for(i=h;i->Next;i=i->Next) { for(j=i->Next;(j)&&(j->Prev);j=j->Prev) { if(j->Id<(j->Prev->Id)) { //change values j->Id +=j->Prev->Id; j->Prev->Id = j->Id-(j->Prev->Id); j->Id-=j->Prev->Id; j->Score +=j->Prev->Score; j->Prev->Score = j->Score-(j->Prev->Score); j->Score-=j->Prev->Score; } } } } int main() { int N,M,ni,mi; PLink NL=0,ML=0,HL=0; scanf("%d %d",&N,&M); //input input(&NL,N); input(&ML,M); //merge HL = merge(&NL,&ML,N,M); //sort sort(HL); //output while(HL) { printf("%d %d\n",HL->Id,HL->Score); HL = HL->Next; } return 0; }
C++ :
#include<bits/stdc++.h> using namespace std; struct f { int a,b; }a[100000]; bool cmp(f a,f b) { return a.a<b.a; } int n,m; int main() { cin>>n>>m; for(int i=1;i<=n+m;i++) cin>>a[i].a>>a[i].b; sort(a+1,a+n+m+1,cmp); for(int i=1;i<=n+m;i++) cout<<a[i].a<<" "<<a[i].b<<"\n"; return 0; }
- 1
信息
- ID
- 1585
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者