201809-2 買菜
阿新 • • 發佈:2018-11-06
#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分,百思不得其解後被自己的愚蠢驚到了;;;