#include <iostream> #include <vector> using namespace std; long green_count=0; enum Color{white,yellow,blue,red,green,orange,purple,brown}; Color makeColor(Color current, Color to_add){ if(current==white) return to_add; if(current==yellow){ if(to_add==blue){ green_count++; return green; } if(to_add==red) return orange; } if(current==blue){ if(to_add==yellow){ green_count++; return green; } if(to_add==red) return purple; } if(current==red){ if(to_add==yellow) return orange; if(to_add==blue) return purple; } if(current==orange){ if(to_add==blue) return brown; } if(current==green){ if(to_add==red){ green_count--; return brown; } } if(current==purple){ if(to_add==yellow) return brown; } return current; } int main(){ long p,ops; cin>>p>>ops; vector<Color>cans; cans.resize(p); long from,to; int color; for (int i = 0; i < ops; i++) { cin>>from>>to>>color; for (int i = from-1; i < to; i++) { cans[i]=makeColor(cans[i],Color(color)); } } /*for(int i = 0;i<cans.size();i++){ cout<<cans[i]<<endl; }*/ cout<<green_count; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include <iostream> #include <vector> using namespace std; long green_count=0; enum Color{white,yellow,blue,red,green,orange,purple,brown}; Color makeColor(Color current, Color to_add){ if(current==white) return to_add; if(current==yellow){ if(to_add==blue){ green_count++; return green; } if(to_add==red) return orange; } if(current==blue){ if(to_add==yellow){ green_count++; return green; } if(to_add==red) return purple; } if(current==red){ if(to_add==yellow) return orange; if(to_add==blue) return purple; } if(current==orange){ if(to_add==blue) return brown; } if(current==green){ if(to_add==red){ green_count--; return brown; } } if(current==purple){ if(to_add==yellow) return brown; } return current; } int main(){ long p,ops; cin>>p>>ops; vector<Color>cans; cans.resize(p); long from,to; int color; for (int i = 0; i < ops; i++) { cin>>from>>to>>color; for (int i = from-1; i < to; i++) { cans[i]=makeColor(cans[i],Color(color)); } } /*for(int i = 0;i<cans.size();i++){ cout<<cans[i]<<endl; }*/ cout<<green_count; return 0; } |