srm 504 easy ComparerInator
方針
素直に調べる。
回答例
#include <sstream> #include <string> #include <vector> #include <map> #include <algorithm> #include <iostream> #include <utility> #include <set> #include <cctype> #include <queue> #include <stack> #include <cstdio> #include <cstdlib> #include <cmath> #include <iterator> using namespace std; class ComparerInator{ public: vector<int> a, b, wanted; size_t n; bool check_a(){ for(size_t i = 0; i < n; i++){ if(a[i] != wanted[i]) return false; } return true; } bool check_b(){ for(size_t i = 0; i < n; i++){ if(b[i] != wanted[i]) return false; } return true; } bool check_min(){ for(size_t i = 0; i < n; i++){ if(min(a[i], b[i]) != wanted[i]) return false; } return true; } bool check_max(){ for(size_t i = 0; i < n; i++){ if(max(a[i], b[i]) != wanted[i]) return false; } return true; } int makeProgram(vector <int> A, vector <int> B, vector <int> w){ a = A; b = B; wanted = w; n = a.size(); if(check_a() || check_b()) return 1; else if(check_min() || check_max()) return 7; else return -1; } };