| 比赛 |
期末考试2 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
物流 |
最终得分 |
100 |
| 用户昵称 |
郑霁桓 |
运行时间 |
2.092 s |
| 代码语言 |
C++ |
内存使用 |
13.05 MiB |
| 提交时间 |
2026-02-10 08:42:24 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,nn,x[1000005],y[1000005],b[1000005],t1[1000005],t2[1000005],yy,a[1000005];
char op[1000005];
inline void a1(long long x,long long y){
for(;x<=m;x+=x&(-x)) t1[x]+=y;
return;
}
inline long long s1(long long x){
long long ss=0;
for(;x;x-=x&(-x)) ss+=t1[x];
return ss;
}
inline void a2(long long x,long long y){
for(;x<=m;x+=x&(-x)) t2[x]+=y;
return;
}
inline long long s2(long long x){
long long ss=0;
for(;x;x-=x&(-x)) ss+=t2[x];
return ss;
}
int main(){
freopen("logistics.in","r",stdin);
freopen("logistics.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>m;
for(long long i=1;i<=m;i++){
cin>>op[i]>>x[i]>>y[i];
b[i]=y[i];
}
sort(b+1,b+m+1);
nn=0;
for(long long i=1;i<=m;i++){
yy=lower_bound(b+1,b+m+1,y[i])-b;
if(op[i]=='U'){
if(!a[x[i]]) nn++;
if(a[x[i]]) a1(a[x[i]],-b[a[x[i]]]);
if(a[x[i]]) a2(a[x[i]],-1);
a1(yy,b[yy]);
a2(yy,1);
a[x[i]]=yy;
}else{
if(s1(yy-1)+(nn-s2(yy-1))*y[i]>=x[i]*y[i]) cout<<"TAK\n";
else cout<<"NIE\n";
}
}
return 0;
}