#include <iostream>
using namespace std;
struct Settings {
struct GeneralSettings {
int gi1, gi2;
};
GeneralSettings& gs() {
static GeneralSettings gs;
return gs;
}
int i1, i2;
Settings(int i1, int i2) : i1(i1), i2(i2) {}
void do_something() {
printf("%d %d %d %d\n", i1, i2, gs().gi1, gs().gi2);
}
};
int main() {
Settings s1(0,1);
Settings s2(1,0);
s1.gs().gi1 = 1;
s2.gs().gi2 = 1;
s2.do_something();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFNldHRpbmdzIHsKCXN0cnVjdCBHZW5lcmFsU2V0dGluZ3MgewoJCWludCBnaTEsIGdpMjsKCX07CgkKCUdlbmVyYWxTZXR0aW5ncyYgZ3MoKSB7CgkJc3RhdGljIEdlbmVyYWxTZXR0aW5ncyBnczsKCQkKCQlyZXR1cm4gZ3M7Cgl9CgkKCWludCBpMSwgaTI7CglTZXR0aW5ncyhpbnQgaTEsIGludCBpMikgOiBpMShpMSksIGkyKGkyKSB7fQoJCgl2b2lkIGRvX3NvbWV0aGluZygpIHsKCQlwcmludGYoIiVkICVkICVkICVkXG4iLCBpMSwgaTIsIGdzKCkuZ2kxLCBncygpLmdpMik7Cgl9Cn07CgppbnQgbWFpbigpIHsKCVNldHRpbmdzIHMxKDAsMSk7CglTZXR0aW5ncyBzMigxLDApOwoJCglzMS5ncygpLmdpMSA9IDE7CglzMi5ncygpLmdpMiA9IDE7CgkKCXMyLmRvX3NvbWV0aGluZygpOwp9