讨论 / 快拍怎么还是只有70分
18995897342 2014-05-17 06:40:49
点我顶贴 收藏 删除
#include "stdio.h"

#define max 10000

void chat(int left,int right,int array1[max][3]);

main(){

int n,a[max][3],b,c,i,j;

scanf("%d",&n);

for(i=0;i<=max-1;i++)

a[i][1]=-1;

b=0;

for(i=1;i<=n;i++){

scanf("%d",&c);

for(j=0;j<=n-1;j++){

if(a[j][1]==c){

a[j][2]++;

break;

}

if(a[j][1]==-1){

a[j][1]=c;

a[j][2]=1;

b++;

break;

}

}

}

/*c=0;

for(i=0;i<b;i++){

for(j=i;j<b;j++){

if(a[i][1]>a[j][1]){

c=a[i][1];

a[i][1]=a[j][1];

a[j][1]=c;

c=a[i][2];

a[i][2]=a[j][2];

a[j][2]=c;

}

}

}*/

chat(0,b-1,a);

for(i=0;i<b;i++)

if(a[i][1]!=-1)

printf("%d %d\n",a[i][1],a[i][2]);

//getch();

}

void chat(int left,int right,int array[max][3]){

int i,j,m,t;

i=left;

j=right;

m=array[(left+right)/2][1];

do{

while((array[i][1]<m)&&(i<right))

i++;

while((array[j][1]>m)&&(j>left))

j--;

if(i<=j){

t=array[i][1];

array[i][1]=array[j][1];

array[j][1]=t;

t=array[i][2];

array[i][2]=array[j][2];

array[j][2]=t;

i++;

j--;

}

}while(i<=j);

if(left<j)

chat(left,j,array);

if(right>i)

chat(i,right,array);

}

#1 李安灏@2016-07-22 18:11:29
回复 删除
#include<stdio.h>

#include<algorithm>

#include<iostream>

using namespace std;

long long a[200010],n,s,i;

int main()

{

cin>>n;

for(i=1;i<=n;i++) scanf("%lld",&a[i]);

sort(a+1,a+1+n);s=1;

for(i=2;i<=n+1;i++)

{

if(a[i]==a[i-1]) s++;

else

{

printf("%lld %lld\n",a[i-1],s);

s=1;

}

}

return 0;

}

#2 刘旋@2016-08-03 02:40:56
回复 删除
呵呵呵
查看更多回复
提交回复