现在的位置: 首页 > 综合 > 正文

hackerrank Service Lane

2018年02月20日 ⁄ 综合 ⁄ 共 556字 ⁄ 字号 评论关闭

这道题挺简单的,但是尝试了好多次,因为题目中给了边界条件但是没有考虑,最后才明白,另外直接使用数组也是不可以的,用vector容器却可以。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <vector>

using namespace std ;

int main()
{
	int N , T ;
	cin >> N >> T ;
	assert(1 <= N);
    assert(N <= 100000);
    assert(1 <= T);
    assert(T <= 1000);
	vector<int> width(N) ;
	for ( int i = 0 ; i <(int) N ; ++i) {
    cin >> width[i];
    assert(width[i] == 1 || width[i] == 2 || width[i] == 3);
  }


	while(T--)
	{
		int i , j ;
		cin >> i >> j ;
		assert(0 <= i);
        assert(i < j);
        assert(j < N);
        assert(j-i+1 <= min(N, 1000));
		
		int ans = width[i] ;
		while ( i <= j)
		{
			ans = min(ans,width[i]) ;
			i++;
		}
		cout << ans << endl ;
	}
	return 0 ;
}

抱歉!评论已关闭.