#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
vector < pair < long long , long long > > Next[200005];
pair < long long , long long > how[200005];
long long F(long long here,long long fa,long long fin,long long x,long long y,long long z)
{
//printf("%lld %lld %lld %lld %lld\n",here,fin,y,x,z);
if(here==fin)
{
//printf("%d %d %d\n",y,x,z);
printf("%lld\n",y+max((long long) 0,x-z));
}
else
{
for(auto i:Next[here])
{
if(i.first==fa) continue;
if(x>=how[i.second].second) F(i.first,here,fin,how[i.second].second,y+x-how[i.second].second+1,z);
else if(x<=how[i.second].first) F(i.first,here,fin,how[i.second].first+1,y,z);
else F(i.first,here,fin,x+1,y,z);
}
}
}
int main()
{
long long N,M,a,b,c,d,i;
scanf("%lld %lld",&N,&M);
for(i=1;i<N;i++)
{
scanf("%lld %lld",&c,&d);
Next[i].push_back(make_pair(i+1,i));
Next[i+1].push_back(make_pair(i,i));
how[i]=make_pair(c,d);
}
while(M--)
{
scanf("%lld",&a);
if(a==1)
{
scanf("%lld %lld %lld",&b,&c,&d);
how[b]=make_pair(c,d);
}
else
{
scanf("%lld %lld %lld %lld",&a,&b,&c,&d);
F(a,-1,c,b,0,d);
}
}
return 0;
}
Compilation message
timeleap.cpp: In function 'long long int F(long long int, long long int, long long int, long long int, long long int, long long int)':
timeleap.cpp:29:1: warning: no return statement in function returning non-void [-Wreturn-type]
29 | }
| ^
timeleap.cpp: In function 'int main()':
timeleap.cpp:33:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
33 | scanf("%lld %lld",&N,&M);
| ~~~~~^~~~~~~~~~~~~~~~~~~
timeleap.cpp:36:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
36 | scanf("%lld %lld",&c,&d);
| ~~~~~^~~~~~~~~~~~~~~~~~~
timeleap.cpp:43:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
43 | scanf("%lld",&a);
| ~~~~~^~~~~~~~~~~
timeleap.cpp:46:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
46 | scanf("%lld %lld %lld",&b,&c,&d);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
timeleap.cpp:51:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
51 | scanf("%lld %lld %lld %lld",&a,&b,&c,&d);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
11 ms |
9964 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
104 ms |
35380 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
11 ms |
9964 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |