uva 10050 - Hartals

  
    
#include < stdio.h >
#include
< stdlib.h >
int lost[ 100000 ];
int h[ 100000 ];
int cmp( const void * _a, const void * _b)
{
int * a = ( int * )_a;
int * b = ( int * )_b;
return * a -* b;
}
int main()
{
int cases,i,l,n,p,flag,count;
scanf(
" %d " , & cases);
while (cases --> 0 )
{
scanf(
" %d%d " , & n, & p);
for (i = 0 ;i < p;i ++ )
scanf(
" %d " , & h[i]);
l
= 0 ;
for (i = 0 ;i < p;i ++ )
{
flag
=- 1 ;
while (flag < n - 1 )
{
flag
+= h[i];
lost[l
++ ] = flag;
}
if (flag > n - 1 )
l
-- ;
}
if (l == 0 )
{
printf(
" 0\n " );
continue ;
}
qsort(lost,l,
sizeof (lost[ 0 ]),cmp);
if ((lost[ 0 ] - 5 ) % 7 && (lost[ 0 ] - 6 ) % 7 )
count
= 1 ;
else
count
= 0 ;
for (i = 0 ;i < l;)
{
while (lost[i] == lost[i + 1 ] && i < l - 1 )
i
++ ;
if (i < l - 1 && (lost[i + 1 ] - 5 ) % 7 && (lost[i + 1 ] - 6 ) % 7 )
count
++ ;
i
++ ;
}
printf(
" %d\n " ,count);
}
return 0 ;
}

你可能感兴趣的:(uva)