이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define DIM 50007
#define INF 1000000007
long long n, m, u, v, w[DIM], t[4*DIM], it, s, W, l, r, mid, L, R, mn, q, T;
void BuildTree(long long v, long long tl, long long tr)
{
if(tl==tr)
{
t[v]=w[tl];
return;
}
long long tm=(tl+tr)>>1;
BuildTree(2*v+1, tl, tm);
BuildTree(2*v+2, tm+1, tr);
t[v]=min(t[2*v+1], t[2*v+2]);
return;
}
void update(long long v, long long tl, long long tr, long long x, long long val)
{
if(x<tl || tr<x) return;
if(tl==tr)
{
t[v]=val;
return;
}
long long tm=(tl+tr)>>1;
update(2*v+1, tl, tm, x, val);
update(2*v+2, tm+1, tr, x, val);
t[v]=min(t[2*v+1], t[2*v+2]);
return;
}
long long get_min(long long v, long long tl, long long tr, long long L, long long R)
{
if(tr<L || R<tl) return INF;
if(L<=tl && tr<=R) return t[v];
long long tm=(tl+tr)>>1;
long long mn1=get_min(2*v+1, tl, tm, L, R);
long long mn2=get_min(2*v+2, tm+1, tr, L, R);
return min(mn1, mn2);
}
int main()
{
cin>>n>>m;
for(int i=1; i<=m; i++)
{
cin>>u>>v>>w[i];
}
if(n!=1) BuildTree(0, 1, m);
cin>>q;
while(q--)
{
cin>>T;
if(T==1)
{
cin>>it>>r;
if(n!=1) update(0, 1, m, it, r);
continue;
}
cin>>s>>W;
if(n==1)
{
cout<<1<<endl;
continue;
}
if(s==n) R=n;
else
{
l=s;
r=m;
while(l<r)
{
mid=(l+r+1)>>1;
mn=get_min(0, 1, m, s, mid);
if(mn<W) r=mid-1;
else l=mid;
}
if(l==s)
{
mn=get_min(0, 1, m, s, s);
if(mn>=W) R=s+1;
else R=s;
}
else
{
R=l+1;
}
}
if(s==1) L=1;
else
{
l=1;
r=s-1;
while(l<r)
{
mid=(l+r)>>1;
mn=get_min(0, 1, m, mid, s-1);
if(mn<W) l=mid+1;
else r=mid;
}
if(l==s-1)
{
mn=get_min(0, 1, m, l, l);
if(mn<W) L=s;
else L=s-1;
}
else L=l;
}
cout<<R-L+1<<endl;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |