nefu1481题 谁考了第k名排序
#include <bits/stdc++.h>
using namespace std;
struct sa
{
int id;
double cj;
} a[ 200 ] ;
int cmp ( const struct sa & a, const struct sa & b)
{
return a. cj> b. cj;
}
int main ( )
{ int n, k;
cin>> n>> k;
for ( int i= 1 ; i<= n; i++ )
{
cin>> a[ i] . id>> a[ i] . cj;
}
sort ( a+ 1 , a+ 1 + n, cmp) ;
printf ( "%d %g\n" , a[ k] . id, a[ k] . cj) ;
return 0 ;
}
nefu1482题 奇数单增序列
#include <bits/stdc++.h>
using namespace std;
int cmp ( const int & j, const int & u)
{
return j< u;
}
int main ( )
{
int n, i, k, j, a[ 502 ] , b[ 502 ] ;
scanf ( "%d" , & n) ;
for ( i= 0 ; i< n; i++ )
{
scanf ( "%d" , & a[ i] ) ;
}
for ( i= 0 , j= 0 ; i< n; i++ )
{
if ( a[ i] % 2 != 0 )
{
b[ j] = a[ i] ;
j++ ;
}
k= j;
}
sort ( b, b+ k, cmp) ;
for ( i= 0 ; i< k; i++ )
{ if ( i< k- 1 )
{ printf ( "%d," , b[ i] ) ;
}
if ( i== k- 1 )
{
printf ( "%d" , b[ i] ) ;
}
}
return 0 ;
}
nefu1483 成绩排序
#include <bits/stdc++.h>
using namespace std;
struct stu
{
char name[ 30 ] ;
int cj;
} a[ 22 ] ;
int cmp ( const struct stu& m, const struct stu& b)
{
if ( m. cj!= b. cj)
{
return m. cj> b. cj;
}
else
{
return strcmp ( m. name, b. name) < 0 ;
}
}
int main ( )
{ int n, i, j;
scanf ( "%d" , & n) ;
for ( i= 0 ; i< n; i++ )
{
cin>> a[ i] . name>> a[ i] . cj;
}
sort ( a, a+ n, cmp) ;
for ( j= 0 ; j< n; j++ )
{
printf ( "%s %d\n" , a[ j] . name, a[ j] . cj) ;
}
return 0 ;
}
nefu1659 没必要的排序1
#include <bits/stdc++.h>
using namespace std;
int cmp ( const int & m, const int & b)
{
return m> b;
}
int main ( )
{ int n, k, a[ 1002 ] , j, sum, i;
scanf ( "%d%d" , & n, & k) ;
sum= 0 ;
for ( i= 0 ; i< n; i++ )
{
scanf ( "%d" , & a[ i] ) ;
}
sort ( a, a+ n, cmp) ;
for ( j= 0 ; j< k; j++ )
{
sum= sum+ a[ j] ;
}
printf ( "%d" , sum) ;
return 0 ;
}
nefu1650 没必要的排序2
#include <bits/stdc++.h>
using namespace std;
const int maxn= 1e7 + 10 ;
const int maxk= 1e5 + 10 ;
int t[ maxk] ;
int main ( )
{ int n, k, i, num, ans, x;
scanf ( "%d%d" , & n, & k) ;
memset ( t, 0 , sizeof ( t) ) ;
for ( i= 1 ; i<= n; i++ )
{
scanf ( "%d" , & x) ;
t[ x] ++ ;
}
num= 0 ;
ans= 0 ;
for ( i= 1e5 ; i>= 1 ; i-- )
{ if ( t[ i] > 0 )
{ num= num+ t[ i] ;
ans= ans+ t[ i] * i;
}
if ( num>= k)
{
ans= ans- ( num- k) * i;
break ;
}
}
printf ( "%d\n" , ans) ;
return 0 ;
}
nefu554 老和尚的导员
#include <bits/stdc++.h>
using namespace std;
struct stu
{
int cyycj, xdcj, gscj, yycj;
int sum;
int bianhao;
} a[ 102 ] ;
bool cmp ( const struct stu& e, const struct stu& f)
{
if ( e. sum!= f. sum)
{
return e. sum> f. sum;
}
else
{
if ( e. cyycj!= f. cyycj)
{
return e. cyycj> f. cyycj;
}
else
{
if ( e. xdcj!= f. xdcj)
{
return e. xdcj> f. xdcj;
}
else
{
if ( e. gscj!= f. gscj)
{
return e. gscj> f. gscj;
}
else
{
return e. yycj> f. yycj;
}
}
}
}
}
int main ( )
{ int i, n;
while ( scanf ( "%d" , & n) != - 1 )
{ for ( i= 0 ; i< n; i++ )
{
cin>> a[ i] . cyycj>> a[ i] . xdcj>> a[ i] . gscj>> a[ i] . yycj;
a[ i] . sum= a[ i] . cyycj+ a[ i] . xdcj+ a[ i] . gscj+ a[ i] . yycj;
a[ i] . bianhao= i+ 1 ;
}
sort ( a, a+ n, cmp) ;
for ( i= 0 ; i< n; i++ )
{
printf ( "%d %d\n" , a[ i] . bianhao, a[ i] . sum) ;
}
}
return 0 ;
}
nefu556 健忘的老和尚
#include <bits/stdc++.h>
using namespace std;
struct stu
{
char name[ 100 ] ;
int cj;
} a[ 1001 ] ;
bool cmp ( const struct stu& e, const struct stu& f)
{
return e. cj< f. cj;
}
int main ( )
{ int n, m, o, i;
while ( scanf ( "%d%d%d" , & n, & m, & o) != - 1 )
{
for ( i= 0 ; i< n; i++ )
{
cin>> a[ i] . name>> a[ i] . cj;
}
sort ( a, a+ n, cmp) ;
for ( i= n- m; i< n; i++ )
{
printf ( "%s\n" , a[ i] . name) ;
}
for ( i= 0 ; i< o; i++ )
{
printf ( "%s\n" , a[ i] . name) ;
}
}
return 0 ;
}
nefu873 戏说三国
#include <bits/stdc++.h>
using namespace std;
struct stu
{
char name[ 30 ] ;
int zy;
int dy;
int wy;
double sum;
} a[ 100001 ] ;
bool cmp ( const struct stu& e, const struct stu& f)
{
if ( e. sum!= f. sum)
{
return e. sum> f. sum;
}
else
{
if ( e. zy!= f. zy)
{
return e. zy> f. zy;
}
else
{
if ( e. dy!= f. dy)
{
return e. dy> f. dy;
}
else
{
return e. wy> f. wy;
}
}
}
}
int main ( )
{ int t, I, n, j, i;
double m, b, c;
while ( scanf ( "%d" , & t) != - 1 )
{ for ( I= 1 ; I<= t; I++ )
{
scanf ( "%d%lf%lf%lf" , & n, & m, & b, & c) ;
for ( i= 0 ; i< n; i++ )
{
cin>> a[ i] . name>> a[ i] . zy>> a[ i] . dy>> a[ i] . wy;
a[ i] . sum= ( a[ i] . zy* b* 0.01 + a[ i] . dy* m* 0.01 + a[ i] . wy* 0.01 * c) * 1.0 ;
}
sort ( a, a+ n, cmp) ;
printf ( "Case #%d:\n" , I) ;
for ( j= 0 ; j< n; j++ )
{
printf ( "%s %.4lf %.4lf %.4lf %.4lf\n" , a[ j] . name, a[ j] . sum, a[ j] . zy* b* 0.01 , a[ j] . dy* m* 0.01 , a[ j] . wy* c* 0.01 ) ;
}
}
}
return 0 ;
}
nefu874 相约摩洛哥
#include <bits/stdc++.h>
using namespace std;
struct stu
{
char name[ 12 ] ;
int ta;
int tb;
int tc;
int ca, cb, cc;
int zcs;
int cj;
} a[ 100001 ] ;
bool cmp ( const struct stu& e, const struct stu& f)
{
if ( e. zcs!= f. zcs)
{
return e. zcs> f. zcs;
}
else
{
return e. cj< f. cj;
}
}
int main ( )
{ int n, i;
while ( scanf ( "%d" , & n) != - 1 )
{
for ( i= 0 ; i< n; i++ )
{
cin>> a[ i] . name>> a[ i] . ta>> a[ i] . tb>> a[ i] . tc;
}
for ( i= 0 ; i< n; i++ )
{ a[ i] . zcs= 0 ;
a[ i] . cj= 0 ;
cin>> a[ i] . ca>> a[ i] . cb>> a[ i] . cc;
if ( a[ i] . ta!= - 1 )
{
a[ i] . cj= a[ i] . cj+ a[ i] . ta+ ( a[ i] . ca- 1 ) * 20 ;
a[ i] . zcs++ ;
}
if ( a[ i] . tb!= - 1 )
{
a[ i] . cj= a[ i] . cj+ a[ i] . tb+ ( a[ i] . cb- 1 ) * 20 ;
a[ i] . zcs++ ;
}
if ( a[ i] . tc!= - 1 )
{
a[ i] . cj= a[ i] . cj+ a[ i] . tc+ ( a[ i] . cc- 1 ) * 20 ;
a[ i] . zcs++ ;
}
}
sort ( a, a+ n, cmp) ;
for ( i= 0 ; i< n; i++ )
{
printf ( "%s %d %d\n" , a[ i] . name, a[ i] . zcs, a[ i] . cj) ;
}
}
return 0 ;
}
nefu1297 结构体排序题1
#include <bits/stdc++.h>
using namespace std;
struct stu
{
int hzb;
int zzb;
} a[ 102 ] ;
bool cmp1 ( const struct stu& e, const struct stu& f)
{
if ( e. hzb!= f. hzb)
{
return e. hzb> f. hzb;
}
else
{
return e. zzb> f. zzb;
}
}
bool cmp2 ( const struct stu& e, const struct stu& f)
{
if ( e. hzb!= f. hzb)
{
return e. hzb> f. hzb;
}
else
{
return e. zzb< f. zzb;
}
}
bool cmp3 ( const struct stu& e, const struct stu& f)
{
if ( e. hzb!= f. hzb)
{
return e. hzb< f. hzb;
}
else
{
return e. zzb> f. zzb;
}
}
bool cmp4 ( const struct stu& e, const struct stu& f)
{
if ( e. hzb!= f. hzb)
{
return e. hzb< f. hzb;
}
else
{
return e. zzb< f. zzb;
}
}
int main ( )
{ int x, y, n, i;
while ( scanf ( "%d%d%d" , & x, & y, & n) != - 1 )
{ for ( i= 0 ; i< n; i++ )
{
scanf ( "%d%d" , & a[ i] . hzb, & a[ i] . zzb) ;
}
if ( x== 0 && y== 0 )
{
sort ( a, a+ n, cmp1) ;
}
if ( x== 0 && y== 1 )
{
sort ( a, a+ n, cmp2) ;
}
if ( x== 1 && y== 0 )
{
sort ( a, a+ n, cmp3) ;
}
if ( x== 1 && y== 1 )
{
sort ( a, a+ n, cmp4) ;
}
for ( i= 0 ; i< n; i++ )
{
printf ( "(%d,%d)\n" , a[ i] . hzb, a[ i] . zzb) ;
}
}
return 0 ;
}
今天就到这里啦~