Para sabermos quantas vezes precisamos ligar o laser, basta comparar as alturas de cada bloco com a altura do bloco anterior, agregando ao número de vezes que vai ligar o laser todas as vezes que tal diferença for maior que zero.
Lembrando que ainda é necessário fazer a diferença entre a altura do bloco total e o último bloco, para o caso em que o último bloco é menor que a altura total do bloco.
#include<stdio.h>intmain(){int A, C, anterior, atual, resposta;while (scanf("%d%d",&A,&C)) {if (!A &&!C)break; resposta =0;scanf("%d",&anterior);for (int i =1; i < C; ++i) {scanf("%d",&atual);if (atual > anterior) { resposta += atual - anterior; } anterior = atual; } resposta += A - anterior;printf("%d\n", resposta); }return0;}
#include<iostream>usingnamespace std;intmain(){int A, C, anterior, atual, resposta;while (cin >> A >> C) {if (!A &&!C)break; resposta =0; cin >> anterior;for (int i =1; i < C; ++i) { cin >> atual;if (atual > anterior) { resposta += atual - anterior; } anterior = atual; } resposta += A - anterior; cout << resposta << endl; }return0;}