#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); for (auto& it : g_lab[lab - 1]->neighbours) { if (item == 'd') it->monitors += count; if (item == 'm') it->desks += count; } 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; 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]); g_labs[l1 - 1].desks += g_labs[l2 - 1].desks; g_labs[l2 - 1].desks += g_labs[l1 - 1].desks; g_labs[l2 - 1].monitors += g_labs[l1 - 1].monitors; g_labs[l1 - 1].monitors += g_labs[l2 - 1].monitors; } 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; }