Submission #432909

# Submission time Handle Problem Language Result Execution time Memory
432909 2021-06-18T15:04:25 Z TLP39 Bridges (APIO19_bridges) C++14
16 / 100
900 ms 524292 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef pair<ll,ll> pll;

int n,m,q;
int seg[200012]={};
int a[50003];
void build(int v,int st,int ed)
{
    if(st==ed)
    {
        seg[v]=a[st];
        return;
    }
    int mid=(st+ed)>>1;
    build(v<<1,st,mid);
    build(1+(v<<1),mid+1,ed);
    seg[v]=min(seg[v<<1],seg[1+(v<<1)]);
}

void upd(int v,int l,int r,int pos,int val)
{
    if(l==r)
    {
        seg[v]=val;
        return;
    }
    int mid=(l+r)>>1;
    if(mid>=pos) upd(v<<1,l,mid,pos,val);
    else upd(1+(v<<1),mid+1,r,pos,val);
    seg[v]=min(seg[v<<1],seg[1+(v<<1)]);
}

int que(int v,int l,int r,int st,int ed)
{
    if(st>ed) return 1000000001;
    if(l==st && r==ed) return seg[v];
    int mid=(l+r)>>1;
    return min(que(v<<1,l,mid,st,min(mid,ed)),que(1+(v<<1),mid+1,r,max(mid+1,st),ed));
}


int getlow(int x,int w)
{
    if(x==1) return 1;
    int hi=x,low=1,av;
    while(hi>low)
    {
        av=(hi+low)>>1;
        if(que(1,1,m,av,x-1)>=w) hi=av;
        else low=av+1;
    }
    return hi;
}

int gethi(int x,int w)
{
    if(x==n) return n;
    int low=x,hi=n,av;
    while(hi>low)
    {
        av=(hi+low+1)>>1;
        if(que(1,1,m,x,av-1)>=w) low=av;
        else hi=av-1;
    }
    return hi;
}

int main()
{
    scanf("%d %d",&n,&m);
    int t1,t2;
    int t,u,v;
    for(int i=1;i<n;i++)
    {
        scanf("%d %d %d",&t1,&t2,&a[i]);
    }
    if(n==1)
    {
        scanf("%d",&q);
        while(q--)
        {
            scanf("%d %d %d",&t,&u,&v);
            if(t==2) printf("1\n");
        }
        return 0;
    }
    build(1,1,m);
    scanf("%d",&q);
    while(q--)
    {
        scanf("%d %d %d",&t,&u,&v);
        if(t==1)
        {
            upd(1,1,m,u,v);
        }
        else
        {
            printf("%d\n",gethi(u,v)-getlow(u,v)+1);
        }
    }
}

Compilation message

bridges.cpp: In function 'int main()':
bridges.cpp:72:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   72 |     scanf("%d %d",&n,&m);
      |     ~~~~~^~~~~~~~~~~~~~~
bridges.cpp:77:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   77 |         scanf("%d %d %d",&t1,&t2,&a[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
bridges.cpp:81:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   81 |         scanf("%d",&q);
      |         ~~~~~^~~~~~~~~
bridges.cpp:84:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   84 |             scanf("%d %d %d",&t,&u,&v);
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~
bridges.cpp:90:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   90 |     scanf("%d",&q);
      |     ~~~~~^~~~~~~~~
bridges.cpp:93:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   93 |         scanf("%d %d %d",&t,&u,&v);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Runtime error 270 ms 524292 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 448 ms 1204 KB Output is correct
2 Correct 442 ms 988 KB Output is correct
3 Correct 439 ms 1092 KB Output is correct
4 Correct 460 ms 1064 KB Output is correct
5 Correct 438 ms 1092 KB Output is correct
6 Correct 534 ms 1256 KB Output is correct
7 Correct 541 ms 1236 KB Output is correct
8 Correct 511 ms 1348 KB Output is correct
9 Correct 32 ms 1732 KB Output is correct
10 Correct 490 ms 2900 KB Output is correct
11 Correct 464 ms 2768 KB Output is correct
12 Correct 900 ms 3844 KB Output is correct
13 Correct 196 ms 3648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 404 ms 780 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 22 ms 1852 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 448 ms 1204 KB Output is correct
2 Correct 442 ms 988 KB Output is correct
3 Correct 439 ms 1092 KB Output is correct
4 Correct 460 ms 1064 KB Output is correct
5 Correct 438 ms 1092 KB Output is correct
6 Correct 534 ms 1256 KB Output is correct
7 Correct 541 ms 1236 KB Output is correct
8 Correct 511 ms 1348 KB Output is correct
9 Correct 32 ms 1732 KB Output is correct
10 Correct 490 ms 2900 KB Output is correct
11 Correct 464 ms 2768 KB Output is correct
12 Correct 900 ms 3844 KB Output is correct
13 Correct 196 ms 3648 KB Output is correct
14 Incorrect 404 ms 780 KB Output isn't correct
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 270 ms 524292 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -