1. 程式人生 > >201809-2 買菜

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分,百思不得其解後被自己的愚蠢驚到了;;;