提出 #32060317


ソースコード 拡げる

#include<bits/stdc++.h>
#include<atcoder/all>
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#define PI acos(-1)
#define all(v) (v).begin(),(v).end()
#define fi first
#define se second
#define mpa make_pair
#define mpt make_tuple
#define emb emplace_back
#define endll "\n"
using namespace std;
using namespace atcoder;
using ll = long long;
constexpr int MAX_BACKET = 448;
constexpr int MAX_N = 200000;
constexpr int MAX_M = 200000;
constexpr int MAX_Q = 200000;
ll imos[MAX_BACKET][MAX_M+1];
int C[MAX_Q],L[MAX_Q],R[MAX_Q],I[MAX_Q],J[MAX_Q],X[MAX_Q];
int Last[MAX_N];
int main(){
  cin.tie(0);ios::sync_with_stdio(false);
  //-----------------------------------------------
  ll N,M,Q;cin >> N >> M >> Q;
  ll sqr = sqrt(Q),backet = (Q+sqr-1)/sqr;
  for(int i=0;i<Q;i++){
    cin >> C[i];
    if(C[i] == 1){
      cin >> L[i] >> R[i] >> X[i];L[i]--;R[i]--;
      imos[i/sqr][L[i]] += X[i];imos[i/sqr][R[i]+1] -= X[i];
    }
    else if(C[i] == 2){
      cin >> I[i] >> X[i];I[i]--;
    }
    else{
      cin >> I[i] >> J[i];I[i]--;J[i]--;
    }
  }
  for(int i=0;i<backet;i++){
    for(int j=1;j<=M;j++) imos[i][j] += imos[i][j-1];
  }
  fill(Last,Last+N,-1);
  for(int i=0;i<Q;i++){
    if(C[i] == 2) Last[I[i]] = i;
    else if(C[i] == 3){
      ll ans = 0;
      if(Last[I[i]] != -1) ans = X[Last[I[i]]];
      int itr = Last[I[i]]+1;
      while(itr < i && itr%sqr){
        if(C[itr] == 1 && L[itr] <= J[i] && J[i] <= R[itr]) ans += X[itr];
        itr++;
      }
      while(itr/sqr < i/sqr){
        ans += imos[itr/sqr][J[i]];itr += sqr;
      }
      while(itr < i){
        if(C[itr] == 1 && L[itr] <= J[i] && J[i] <= R[itr]) ans += X[itr];
        itr++;
      }
      cout << ans << endll;
    }
  }
}

提出情報

提出日時
問題 F - Operations on a Matrix
ユーザ souta_1326
言語 C++ (GCC 9.2.1)
得点 500
コード長 1826 Byte
結果 AC
実行時間 1256 ms
メモリ 709176 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 34
セット名 テストケース
Sample example_00.txt, example_01.txt, example_02.txt
All example_00.txt, example_01.txt, example_02.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt
ケース名 結果 実行時間 メモリ
example_00.txt AC 7 ms 3716 KiB
example_01.txt AC 2 ms 3760 KiB
example_02.txt AC 2 ms 3652 KiB
test_00.txt AC 1255 ms 709124 KiB
test_01.txt AC 1236 ms 709148 KiB
test_02.txt AC 1256 ms 709032 KiB
test_03.txt AC 1250 ms 709044 KiB
test_04.txt AC 1237 ms 709076 KiB
test_05.txt AC 583 ms 208084 KiB
test_06.txt AC 939 ms 370524 KiB
test_07.txt AC 987 ms 609680 KiB
test_08.txt AC 942 ms 382488 KiB
test_09.txt AC 681 ms 171144 KiB
test_10.txt AC 67 ms 72808 KiB
test_11.txt AC 858 ms 389264 KiB
test_12.txt AC 443 ms 340200 KiB
test_13.txt AC 1030 ms 534812 KiB
test_14.txt AC 567 ms 434436 KiB
test_15.txt AC 177 ms 146140 KiB
test_16.txt AC 289 ms 254696 KiB
test_17.txt AC 492 ms 141572 KiB
test_18.txt AC 99 ms 18000 KiB
test_19.txt AC 96 ms 88704 KiB
test_20.txt AC 651 ms 709088 KiB
test_21.txt AC 660 ms 709020 KiB
test_22.txt AC 669 ms 709124 KiB
test_23.txt AC 669 ms 709040 KiB
test_24.txt AC 671 ms 709084 KiB
test_25.txt AC 655 ms 709036 KiB
test_26.txt AC 659 ms 709176 KiB
test_27.txt AC 671 ms 709128 KiB
test_28.txt AC 659 ms 709144 KiB
test_29.txt AC 656 ms 709084 KiB
test_30.txt AC 616 ms 707536 KiB