201809-2 买菜

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int N=1000010;
int table[N];
int main(){
	memset(table,0,sizeof(table));
	int n,t1,t2,min=1000000,max=-1;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>t1>>t2;
		for(int j=t1;j<t2;j++){
				table[j]++;
			if(t1<min) min=t1;
			if(t2>max) max=t2;
		}
	}
	for(int i=0;i<n;i++){
		cin>>t1>>t2;
		for(int j=t1;j<t2;j++){
				table[j]++;
			if(t1<min) min=t1;
			if(t2>max) max=t2;
		}
	}
	int count=0;
	for(int i=min;i<max;i++){
		if(table[i]==2){
			count++;
		}
	}
	cout<<count;
	return 0;
}

思路:循环就好了,循环中比较和标记;

逻辑感觉没问题记得多看题目要求呀,刚开始理解错了题意导致一直是0分,百思不得其解后被自己的愚蠢惊到了;;;

猜你喜欢

转载自blog.csdn.net/qq_42261362/article/details/83351687
今日推荐