#include #include using namespace std; struct lab; struct lab { int desks; int monitors; vector neighbours; }; lab* g_labs; void do_cmd_add() { int count; scanf("%d", &count); char item = 0; for (;;) { item = getc(stdin); if (item == 'd') { getc(stdin); // e getc(stdin); // s getc(stdin); // k break; } if (item == 'm') { getc(stdin); // o getc(stdin); // n getc(stdin); // i getc(stdin); // t getc(stdin); // o getc(stdin); // r break; } } int lab; scanf("%d", &lab); if (item == 'd') g_labs[lab - 1].desks += count; if (item == 'm') g_labs[lab - 1].monitors += count; } void do_cmd_check() { int lab; scanf("%d", &lab); ::lab* l = &g_labs[lab - 1]; int monitors = l->monitors; int desks = l->desks; for (auto& it : l->neighbours) { monitors += it->monitors; desks += it->desks; } if (desks > monitors) puts("desks"); else if (desks < monitors) puts("monitors"); else puts("same"); } int main() { int n, m, q; scanf("%d %d %d\n", &n, &m, &q); g_labs = new lab[n]; for (int i = 0; i < n; i++) scanf("%d ", &g_labs[i].desks); for (int i = 0; i < n; i++) scanf("%d ", &g_labs[i].monitors); for (int i = 0; i < m; i++) { int l1, l2; scanf("%d %d", &l1, &l2); g_labs[l1 - 1].neighbours.push_back(&g_labs[l2 - 1]); g_labs[l2 - 1].neighbours.push_back(&g_labs[l1 - 1]); } for (int i = 0; i < q; i++) { char cmd = 0; for (;;) { cmd = getc(stdin); if (cmd == 'c') { getc(stdin); // h getc(stdin); // e getc(stdin); // c getc(stdin); // k do_cmd_check(); break; } if (cmd == 'a') { getc(stdin); // d getc(stdin); // d do_cmd_add(); break; } } } return 0; }