1. Одноточечной модификации, интервал запроса
<. бит / STDC ++ H> #include #define повторно возвращать #define будет долго долго #define lowbit (х) (х & (- х)) #define вкл (I, L, г) для (INT I = L; г < = г; ++ я) с использованием пространства имен STD; Шаблон <Ьурепате Т> инлайн аннулируются й (Т & х) { символ с; BOOL е = 0 ; в то время как ((с = GetChar ()) < ' 0 ' || с> ' 9 ' ) , если (с == ' - ' ) F = 1 ; х = с ^ 48; в то время как ((с = GetChar ())> = ' 0 ' && с <= ' 9 ' ) х = х * 10 + (с ^ 48 ); если (е) х = - х; } Const INT maxn = 5000 ; LL н, м; LL с [maxn] [maxn]; рядный недействительными добавить (LL х, LL у, Л.Л. г) { для (LL я = х; г <= п; г + = lowbit (я)) для (LL J = у; J <= т; J + = lowbit (J )) с [I] [J] + = г; } Инлайн LL сумма (LL х, у LL) { LL Рез = 0; для (LL I = х; я; I- = lowbit (я)) для (LL J = у; J; J- = lowbit (J)) Рез + = C [I] [J]; ре рес; } INT основных () { freopen ( " in.txt " , " г " , STDIN); LL а, б, х, у, г, выбор; й (п); й (м); в то время как (~ (зсапЕ ( " % LLD " , & опт))) { если (неавтоматического == 1 ) { й (х), й (у), й (г); добавить (х, у, г); } остальное { й (а); й (б), й (х), й (у); Е ( " % LLD \ п " , сумма (х, у) + сумма (a - 1 , b - 1 ) -сумма (х, b- 1 ) -сумма (а - 1 , у)); } } Повторно 0 ; }