void test1() { add(0); querry(0); remove(0); querry(0); }
int querry(int rs,int l,int r) { if(tree[rs].l==l&&tree[rs].r==r) return tree[rs].s; int mid=(tree[rs].l+tree[rs].r)/2; if(r<=mid) return querry(rs*2,l,r); if(l>mid) return querry(rs*2+1,l,r); if(l<=mid&&r>mid) return max(querry(rs*2,l,mid),querry(rs*2+1,mid+1,r)); return 0; }
void test3() { for(int i=0;i<100;i++) { add(i); querry(i); } add(122); remove(22); querry(22); querry(122); }
void test2() { add(0); querry(0); remove(0); querry(0); add(100); querry(100); remove(100); querry(0); }
void UserSettings::addUser() { AddUserDialog dialog; if (dialog.exec() == QDialog::Accepted) { const QString user = dialog.user(); const QByteArray password = dialog.password(); // request to save user to database database::databasequery::StoreUserQuery querry(user, password); querry.execute(); // check if querry complete successfuly if (querry.error().isEmpty()) { // add user with his name QListWidgetItem *item = new QListWidgetItem(user, list_); // store user name and password item->setData(Qt::UserRole, user); item->setData(Qt::UserRole + 1, password); } else { QMessageBox::information(this, tr("error"), querry.error()); } } }
void UserSettings::removeUser() { QListWidgetItem *item = list_->currentItem(); if (item) { QString userName = item->data(Qt::UserRole).toString(); if (QMessageBox::warning(this, QString::null, tr("Delete user %1?").arg(userName), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { // request to delete user from database database::databasequery::DeleteUserQuery querry(userName); querry.execute(); // check if querry complete successfuly if (querry.error().isEmpty()) { delete item; } else { QMessageBox::information(this, tr("error"), querry.error()); } } } else { QMessageBox::warning(this, QString::null, tr("You should select a user")); } }
int main() { int left,right; char c; while(~scanf("%d%d",&n,&m)) { for(int i=1; i<=n; i++) scanf("%d",&a[i]); buildtree(1,1,n); for(int i=1; i<=m; i++) { getchar(); scanf("%c%d%d",&c,&left,&right); if(c=='Q') printf("%d\n",querry(1,left,right)); else update(1,left,right); } } return 0; }