1814 Problem A 剩下的树
#include <stdio.h>
int main ( ) {
int a[ 10000 ] ;
int l, m;
int x, y;
while ( scanf ( "%d%d" , & l, & m) != EOF && l&& m) {
int sum= 0 ;
for ( int i= 0 ; i<= l; i++ ) {
a[ i] = 1 ;
}
while ( m-- ) {
scanf ( "%d%d" , & x, & y) ;
for ( int i= x; i<= y; i++ ) {
a[ i] = 0 ;
}
}
for ( int i= 0 ; i<= l; i++ ) {
if ( a[ i] == 1 ) {
sum++ ;
}
}
printf ( "%d\n" , sum) ;
}
}
1817 Problem B A+B
#include <stdio.h>
#include <string.h>
long transform ( char * a, int len) ;
int main ( )
{
char a[ 12 ] , b[ 12 ] ;
int len1, len2;
long A, B;
while ( scanf ( "%s%s" , a, b) != - 1 )
{
len1= strlen ( a) ;
len2= strlen ( b) ;
A= transform ( a, len1) ;
B= transform ( b, len2) ;
printf ( "%ld\n" , A+ B) ;
}
return 0 ;
}
long transform ( char * a, int len)
{
int sum= 0 , j= 1 , i;
for ( i= len- 1 ; i>= 0 ; i-- )
{
if ( a[ i] >= '0' && a[ i] <= '9' )
{
sum+ = ( a[ i] - 48 ) * j;
j* = 10 ;
}
}
if ( a[ 0 ] == '-' )
sum= - sum;
return sum;
}
1906 Problem C 特殊乘法
#include <stdio.h>
#include <string.h>
int main ( )
{
char a[ 100 ] , b[ 100 ] ;
while ( scanf ( "%s%s" , & a, & b) != - 1 )
{ int len1, len2;
len1= strlen ( a) ;
len2= strlen ( b) ;
int sum = 0 ;
for ( int i = 0 ; i< len1; i++ )
for ( int j = 0 ; j< len2; j++ )
{
sum = ( a[ i] - '0' ) * ( b[ j] - '0' ) + sum;
}
printf ( "%d\n" , sum) ;
}
}
2036 Problem D 比较奇偶数个数
#include <stdio.h>
#include <string.h>
int main ( ) {
int n, a[ 1000 ] , i, sum1, m;
while ( scanf ( "%d" , & n) != - 1 ) {
m= n;
i= 0 , sum1= 0 ;
while ( m-- ) {
scanf ( "%d" , & a[ i] ) ;
if ( a[ i] % 2 == 0 ) {
sum1++ ;
}
i++ ;
}
if ( sum1> ( n- sum1) ) {
printf ( "NO\n" ) ;
} else {
printf ( "YES\n" ) ;
}
} }
6116 Problem E Shortest Distance
6128 Problem F A+B和C
#include <stdio.h>
#include <string.h>
int main ( ) {
int n, m= 1 ;
scanf ( "%d" , & n) ;
long long a, b, c;
while ( n-- ) {
scanf ( "%lld%lld%lld" , & a, & b, & c) ;
if ( a+ b> c) {
printf ( "Case #%d: true\n" , m) ;
} else {
printf ( "Case #%d: false\n" , m) ;
}
m++ ;
}
}
6129 Problem G 数字分类
#include <stdio.h>
#include <string.h>
int main ( ) {
int n;
while ( scanf ( "%d" , & n) != EOF ) {
double num= 0 ;
int a[ 1000 ] , m[ 5 ] , flag= 1 , max= 0 , exist1= 0 , exist2= 0 ;
memset ( m, 0 , sizeof ( m) ) ;
for ( int i= 0 ; i< n; i++ ) {
scanf ( "%d" , & a[ i] ) ;
if ( a[ i] % 5 == 0 && a[ i] % 2 == 0 ) {
exist1= 1 ;
m[ 0 ] + = a[ i] ;
}
if ( a[ i] % 5 == 1 ) {
exist2= 1 ;
m[ 1 ] + = flag* a[ i] ;
flag* = - 1 ;
}
if ( a[ i] % 5 == 2 ) {
m[ 2 ] ++ ;
}
if ( a[ i] % 5 == 3 ) {
m[ 3 ] + = a[ i] ;
num++ ;
}
if ( a[ i] % 5 == 4 ) {
if ( a[ i] > max) {
max= a[ i] ;
}
}
m[ 4 ] = max;
}
for ( int j= 0 ; j< 5 ; j++ ) {
if ( m[ j] == 0 ) {
if ( ( j== 0 && exist1) || ( j== 1 && exist2) ) {
printf ( "%d " , m[ j] ) ;
} else {
printf ( "N " ) ;
}
continue ;
}
if ( j== 3 && m[ 3 ] != 0 ) {
printf ( "%.1f " , m[ 3 ] / num) ;
continue ;
}
if ( j== 4 ) {
printf ( "%d" , m[ j] ) ;
break ;
}
printf ( "%d " , m[ j] ) ;
}
}
}
6170 Problem H 部分A+B
#include <stdio.h>
#include <string.h>
#include <math.h>
int main ( ) {
char a[ 100 ] , b[ 100 ] ;
int da, db;
while ( scanf ( "%s%d%s%d" , & a, & da, & b, & db) != EOF ) {
int len1= 0 , len2= 0 , sum1= 0 , sum2= 0 , n= 0 , m= 0 ;
len1= strlen ( a) ;
len2= strlen ( b) ;
for ( int i= 0 ; i< len1; i++ ) {
if ( ( a[ i] - '0' ) == da) {
n++ ;
if ( n== 1 ) {
sum1+ = da;
}
if ( n!= 1 ) {
sum1+ = da* pow ( 10 , ( n- 1 ) ) ;
}
}
}
for ( int j= 0 ; j< len2; j++ ) {
if ( ( b[ j] - '0' ) == db) {
m++ ;
if ( m== 1 ) {
sum2+ = db;
}
if ( m!= 1 ) {
sum2+ = db* pow ( 10 , ( m- 1 ) ) ;
}
}
}
printf ( "%d" , sum1+ sum2) ;
}
}
6172 Problem I 锤子剪刀布