201809-2 买菜
程序员文章站
2022-04-25 20:02:23
...
#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分,百思不得其解后被自己的愚蠢惊到了;;;