Exemplo n.º 1
0
int main() {

	int sum = 0;
	for(int i = 1; i < 1000000; i++) {
		int curr_chain = chain_length(i);
		
		if(curr_chain == 60) {
			sum++;
			//printf("%d\n", i);
		}
	}
	
	printf("\nSum: %d\n", sum);

	return 0;
}
Exemplo n.º 2
0
/*
 * Version: 12.07.24 (Generic Smart Readable)
 * Uses chain_length() to find solution.
 */
unsigned int solution(const unsigned int THRESHOLD)
{
        int i;
        int largest = 0;
        int current;
        int return_value;
        for(i=1; i <= THRESHOLD; i++) {
                current = chain_length(i);
                if(current > largest) {
                        largest = current;
                        return_value = i;
                }
        }
                
        return return_value;
}
Exemplo n.º 3
0
static gsize
chain_length(ByteChain *chain)
{
  gsize len = 0;
  while(chain) {
    if (chain->len) {
      len += chain->len;
    } else {
      if (chain->data.sub_chain) {
	len += chain_length(chain->data.sub_chain);
      }
    }
    chain = chain->next;
  }
  return len;
}
Exemplo n.º 4
0
static gboolean
pcapng_write_block(GOutputStream *out, guint type, ByteChain *body,  GError **err)
{
  static const guint8 pad[] = {0,0,0};
  ByteChain chain[4];
  guint32 header[2];
  gsize body_len = chain_length(body);
  header[0] = type;
  header[1] = body_len + 12;
  chain[0].len = sizeof(header);
  chain[0].data.bytes = (guint8*)header;
  chain[0].next = &chain[1];
  chain[1].len = 0;
  chain[1].data.sub_chain = body;
  chain[1].next = &chain[2];
  chain[2].len = PADLEN(body_len, 4);
  chain[2].data.bytes = chain[2].len == 0 ? (guint8*)NULL : pad;
  chain[2].next = &chain[3];
  chain[3].len = sizeof(header[1]);
  chain[3].data.bytes = (guint8*)&header[1];
  chain[3].next = NULL;
  
  return pcapng_write_chain(out, chain, err);
}