Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

救救我把,wa啦好多次了。就是不知道哪里错了

Posted by 4110615 at 2014-05-18 09:11:41 on Problem 2376
#include <iostream>
#include <algorithm>
using namespace std;
#pragma warning(disable:4996)
const int MAX_N = 25002;
pair<int, int>via[MAX_N];
int N, T;
void solve(){
	sort(via, via + N);
	//如果到达不到T直接return
	if (via[N - 1].second < T){
		printf("%d\n", -1);
		return;
	}
	int ans = 0;
	int t = 1, i = 0;
	while (i < N){
		//选初始的1
		while (via[i].first == 1){
			t = via[i].second + 1;
			i++;
		}
		//拼接并选择结束时间最大的一个
		if (t >= via[i].first){
			int temp = t;
			//在循环的过程中t在变化
			while (i < N&&temp >= via[i].first){
				t = max(t, via[i].second + 1);
				i++;
			}
			ans++;
		}
		//不能拼接return
		else{
			printf("%d\n", -1);
			return;
		}
	}
	printf("%d\n", ans + 1);
}
int main()
{
	#ifndef ONLINE_JUDGE
	freopen("E:\\in.txt", "r", stdin);
	#endif // !ONLINE_JUDGE

	scanf("%d  %d", &N, &T);
	int a, b;
	for (int i = 0; i < N; ++i){
		scanf("%d  %d", &a, &b);
		via[i] = make_pair(a, b);
	}
	solve();
	#ifndef ONLINE_JUDGE
	fclose(stdin);
	#endif // !ONLINE_JUDGE
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator