2013年8月13日 星期二

2013/8/13 TIOJ 1057 [入門]難度5.過河拆橋

// http://218.210.35.237:8080/JudgeOnline/showproblem?problem_id=1057
#include <iostream>
#include <cstdio>
using namespace std;
int num[100];
int main()
{
    int M, P, N;
    scanf("%d %d %d", &M, &P, &N);

    for(int i = 1; i <= N; i++)
        scanf("%d", &num[i]);

    num[0] = 0;
    int p = 0, now = 0;
    int si = 0; int step = 0;
    while(1)
    {
        step ++; now += M;
        if( now >= P ){ printf("%d\n", step-1); break; }
        for( ; num[si] <= now && si <= N; si++);
        now = num[si-1];
        if( now == p ){ printf("IMPOSSIBLE\n"); break; }
        p = now;
    }
}

沒有留言:

張貼留言