提出 #76482666
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int MAX=3e5+10;
int treeR[MAX],treeC[MAX],lastR[MAX],lastC[MAX];
int n,q;
void add(int tree[],int index,int value){
while(index<=q){
tree[index]+=value;
index+=(index&-index);
}
}
int sum(int tree[],int index){
int total=0;
while(index>0){
total+=tree[index];
index-=(index&-index);
}
return total;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>n>>q;
ll totalBlack=0;
for(int i=1;i<=q;i++){
int type,x;
cin>>type>>x;
if(type==1){
int oldTime=lastR[x];
if(oldTime==0){
totalBlack+=n;
}
else{
int whiteCols=sum(treeC,q)-sum(treeC,oldTime);
totalBlack+=whiteCols;
add(treeR,oldTime,-1);
}
lastR[x]=i;
add(treeR,i,1);
}
else if(type==2){
int oldTime=lastC[x];
int blackRows=sum(treeR,q)-sum(treeR,oldTime);
totalBlack-=blackRows;
if(oldTime>0){
add(treeC,oldTime,-1);
}
lastC[x]=i;
add(treeC,i,1);
}
cout<<totalBlack<<"\n";
}
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - E-liter |
| ユーザ | arnab_21 |
| 言語 | C++23 (GCC 15.2.0) |
| 得点 | 475 |
| コード長 | 1361 Byte |
| 結果 | AC |
| 実行時間 | 51 ms |
| メモリ | 8872 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 475 / 475 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample-01.txt, sample-02.txt |
| All | 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, sample-01.txt, sample-02.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 03.txt | AC | 1 ms | 3492 KiB |
| 04.txt | AC | 1 ms | 3592 KiB |
| 05.txt | AC | 28 ms | 4868 KiB |
| 06.txt | AC | 29 ms | 4816 KiB |
| 07.txt | AC | 1 ms | 3588 KiB |
| 08.txt | AC | 1 ms | 3592 KiB |
| 09.txt | AC | 30 ms | 4868 KiB |
| 10.txt | AC | 29 ms | 4932 KiB |
| 11.txt | AC | 33 ms | 6336 KiB |
| 12.txt | AC | 31 ms | 5960 KiB |
| 13.txt | AC | 30 ms | 5812 KiB |
| 14.txt | AC | 29 ms | 4744 KiB |
| 15.txt | AC | 1 ms | 3536 KiB |
| 16.txt | AC | 1 ms | 3760 KiB |
| 17.txt | AC | 1 ms | 3640 KiB |
| 18.txt | AC | 2 ms | 3656 KiB |
| 19.txt | AC | 9 ms | 4104 KiB |
| 20.txt | AC | 35 ms | 7364 KiB |
| 21.txt | AC | 42 ms | 6020 KiB |
| 22.txt | AC | 42 ms | 5840 KiB |
| 23.txt | AC | 35 ms | 7088 KiB |
| 24.txt | AC | 43 ms | 7084 KiB |
| 25.txt | AC | 36 ms | 7076 KiB |
| 26.txt | AC | 36 ms | 6920 KiB |
| 27.txt | AC | 36 ms | 8132 KiB |
| 28.txt | AC | 41 ms | 6084 KiB |
| 29.txt | AC | 45 ms | 8324 KiB |
| 30.txt | AC | 36 ms | 5892 KiB |
| 31.txt | AC | 46 ms | 8364 KiB |
| 32.txt | AC | 42 ms | 6020 KiB |
| 33.txt | AC | 45 ms | 8652 KiB |
| 34.txt | AC | 43 ms | 6096 KiB |
| 35.txt | AC | 45 ms | 8616 KiB |
| 36.txt | AC | 40 ms | 5944 KiB |
| 37.txt | AC | 45 ms | 8872 KiB |
| 38.txt | AC | 38 ms | 6012 KiB |
| 39.txt | AC | 45 ms | 8776 KiB |
| 40.txt | AC | 33 ms | 6556 KiB |
| 41.txt | AC | 33 ms | 5968 KiB |
| 42.txt | AC | 35 ms | 7080 KiB |
| 43.txt | AC | 35 ms | 6964 KiB |
| 44.txt | AC | 35 ms | 6860 KiB |
| 45.txt | AC | 36 ms | 8152 KiB |
| 46.txt | AC | 40 ms | 7080 KiB |
| 47.txt | AC | 41 ms | 7080 KiB |
| 48.txt | AC | 41 ms | 7080 KiB |
| 49.txt | AC | 41 ms | 8108 KiB |
| 50.txt | AC | 50 ms | 8648 KiB |
| 51.txt | AC | 48 ms | 8612 KiB |
| 52.txt | AC | 51 ms | 8616 KiB |
| 53.txt | AC | 46 ms | 8616 KiB |
| 54.txt | AC | 50 ms | 8708 KiB |
| 55.txt | AC | 51 ms | 8616 KiB |
| sample-01.txt | AC | 1 ms | 3624 KiB |
| sample-02.txt | AC | 1 ms | 3504 KiB |