#include<bits/stdc++.h>
using namespace std;
const int N=150050;
int n,m,q,u[N],v[N],w[N],ans,t,a,b,seg[N<<2];
bool vis[N];
vector<int> adj[N];
void build(int id,int l,int r){
if (l==r){
seg[id]=w[l];
return;
}
int mid=(l+r)/2;
build(id*2,l,mid);
build(id*2+1,mid+1,r);
seg[id]=min(seg[id*2],seg[id*2+1]);
}
void modify(int id,int l,int r,int ql,int val){
if (l>ql||r<ql) return;
if (l==r){
seg[id]=val;
return;
}
int mid=(l+r)/2;
modify(id*2,l,mid,ql,val);
modify(id*2+1,mid+1,r,ql,val);
seg[id]=min(seg[id*2],seg[id*2+1]);
}
int query(int id,int l,int r,int ql,int qr){
if (l>qr||r<ql) return INT_MAX;
if (l>=ql&&r<=qr) return seg[id];
int mid=(l+r)/2;
return min(query(id*2,l,mid,ql,qr),query(id*2+1,mid+1,r,ql,qr));
}
int main(){
cin>>n>>m;
for (int i=1;i<=m;i++){
cin>>u[i]>>v[i]>>w[i];
adj[u[i]].push_back(i);
adj[v[i]].push_back(-i);
}
if (m) build(1,1,m);
cin>>q;
while (q--){
cin>>t>>a>>b;
if (t==1){
w[a]=b;
modify(1,1,m,a,b);
continue;
}
if (!m){
cout<<"1\n";
continue;
}
int ll,rr,mm,currl;
ll=1,rr=a-1;
if (w[a-1]<b){
currl=a;
goto skip;
}
while (ll<rr){
mm=(ll+rr)/2;
if (query(1,1,m,mm,a-1)>=b) rr=mm;
else ll=mm+1;
}
currl=rr;
skip:;
ll=a,rr=m;
if (w[a]<b){
cout<<a-currl+1<<"\n";
continue;
}
while (ll<rr){
mm=(ll+rr+1)/2;
if (query(1,1,m,a,mm)>=b) ll=mm;
else rr=mm-1;
}
cout<<ll-currl+2<<"\n";
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
3796 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
333 ms |
6592 KB |
Output is correct |
2 |
Correct |
331 ms |
6516 KB |
Output is correct |
3 |
Correct |
331 ms |
6748 KB |
Output is correct |
4 |
Correct |
332 ms |
6608 KB |
Output is correct |
5 |
Correct |
340 ms |
6688 KB |
Output is correct |
6 |
Correct |
495 ms |
6960 KB |
Output is correct |
7 |
Correct |
501 ms |
6764 KB |
Output is correct |
8 |
Correct |
508 ms |
6856 KB |
Output is correct |
9 |
Correct |
180 ms |
5324 KB |
Output is correct |
10 |
Correct |
388 ms |
8452 KB |
Output is correct |
11 |
Correct |
365 ms |
8248 KB |
Output is correct |
12 |
Correct |
799 ms |
9460 KB |
Output is correct |
13 |
Correct |
214 ms |
9184 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
340 ms |
5508 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
612 ms |
8412 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
333 ms |
6592 KB |
Output is correct |
2 |
Correct |
331 ms |
6516 KB |
Output is correct |
3 |
Correct |
331 ms |
6748 KB |
Output is correct |
4 |
Correct |
332 ms |
6608 KB |
Output is correct |
5 |
Correct |
340 ms |
6688 KB |
Output is correct |
6 |
Correct |
495 ms |
6960 KB |
Output is correct |
7 |
Correct |
501 ms |
6764 KB |
Output is correct |
8 |
Correct |
508 ms |
6856 KB |
Output is correct |
9 |
Correct |
180 ms |
5324 KB |
Output is correct |
10 |
Correct |
388 ms |
8452 KB |
Output is correct |
11 |
Correct |
365 ms |
8248 KB |
Output is correct |
12 |
Correct |
799 ms |
9460 KB |
Output is correct |
13 |
Correct |
214 ms |
9184 KB |
Output is correct |
14 |
Incorrect |
340 ms |
5508 KB |
Output isn't correct |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
3796 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |