// Original CPU teaching model; not a device simulator or benchmark.
#include <iostream>
#include <vector>
#include <stdexcept>

void require(bool ok) { if (!ok) throw std::runtime_error("model check failed"); }

std::vector<int> prefix(const std::vector<int>& a) {
 std::vector<int> out;int sum=0;for(int x:a){sum+=x;out.push_back(sum);}return out;
}
int main() {
 const auto a=prefix({2,4,4}),b=prefix({4,2,4});
 require(a.back()==b.back() && a!=b);
 std::cout<<"same_total="<<(a.back()==b.back())<<" same_scan="<<(a==b)<<'\n';
}

