#include <vector>
#include <iostream>
template<class T>
class matrix {
public:
matrix(size_t width, size_t height) : data_(width, std::vector<T>(height, T())) {}
T& at(size_t x, size_t y) {
return data_.at(x).at(y);
}
const T& at(size_t x, size_t y) const {
return data_.at(x).at(y);
}
private:
std::vector<std::vector<T>> data_;
};
int main() {
int w = 20;
int h = 30;
matrix<int> foo(w, h);
foo.at(0, 0) = 1;
foo.at(1, 2) = 2;
std::cout << foo.at(1, 2);
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8Y2xhc3MgVD4KY2xhc3MgbWF0cml4IHsKcHVibGljOgogIG1hdHJpeChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpIDogZGF0YV8od2lkdGgsIHN0ZDo6dmVjdG9yPFQ+KGhlaWdodCwgVCgpKSkge30KICAKICBUJiBhdChzaXplX3QgeCwgc2l6ZV90IHkpIHsKICAgIHJldHVybiBkYXRhXy5hdCh4KS5hdCh5KTsKICB9CiAgCiAgY29uc3QgVCYgYXQoc2l6ZV90IHgsIHNpemVfdCB5KSBjb25zdCB7CiAgICByZXR1cm4gZGF0YV8uYXQoeCkuYXQoeSk7CiAgfQoKcHJpdmF0ZToKICBzdGQ6OnZlY3RvcjxzdGQ6OnZlY3RvcjxUPj4gZGF0YV87Cn07CgppbnQgbWFpbigpIHsKICBpbnQgdyA9IDIwOwogIGludCBoID0gMzA7CiAgbWF0cml4PGludD4gZm9vKHcsIGgpOwogIGZvby5hdCgwLCAwKSA9IDE7CiAgZm9vLmF0KDEsIDIpID0gMjsKICBzdGQ6OmNvdXQgPDwgZm9vLmF0KDEsIDIpOwp9