Submission #122042

#TimeUsernameProblemLanguageResultExecution timeMemory
122042KLPPBitaro, who Leaps through Time (JOI19_timeleap)C++14
4 / 100
3019 ms11180 KiB
#include<bits/stdc++.h>

using namespace std;
typedef long long int lld;
typedef pair<lld,lld> pii;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define trav(a,v) for(auto a:v)
pii roads[1000000];

int main(){
  int n,q;
  scanf("%d %d",&n,&q);
  rep(i,0,n-1){
    scanf("%lld %lld",&roads[i].first,&roads[i].second);
  }
  while(q--){
    int t;
    scanf("%d",&t);
    if(t==1){
      int index;
      scanf("%d",&index);
      index--;
      scanf("%lld %lld",&roads[index].first,&roads[index].second);
    }else{
      int a,c;
      lld b,d;
      scanf("%d %lld %d %lld",&a,&b,&c,&d);
      a--;c--;
      if(a<=c){
	lld time=b;
	lld cost=0;
	
	while(a<c){
	  //cout<<time<<endl;
	  cost+=max((lld)0,time-(roads[a].second-1));
	  //cout<<cost<<"A"<<endl;
	  time=max(time,roads[a].first);
	  time++;
	  time=min(time,roads[a].second);
	  a++;
	}
	//cout<<d<<endl;
	cost+=max((lld)0,time-d);
	printf("%lld\n",cost);
      }
      else{
	lld time=b;
	lld cost=0;
	while(c<a){
	  //cout<<"T"<<time<<" "<<cost<<endl;
	  cost+=max((lld)0,time-(roads[a-1].second-1));
	  time=max(time,roads[a-1].first);
	  time++;
	  time=min(time,roads[a-1].second);
	  a--;
	}
	cost+=max((lld)0,time-d);
	printf("%lld\n",cost);
      }
    }
  }
  return 0;
}

Compilation message (stderr)

timeleap.cpp: In function 'int main()':
timeleap.cpp:12:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d",&n,&q);
   ~~~~~^~~~~~~~~~~~~~~
timeleap.cpp:14:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld %lld",&roads[i].first,&roads[i].second);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
timeleap.cpp:18:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&t);
     ~~~~~^~~~~~~~~
timeleap.cpp:21:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d",&index);
       ~~~~~^~~~~~~~~~~~~
timeleap.cpp:23:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%lld %lld",&roads[index].first,&roads[index].second);
       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
timeleap.cpp:27:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d %lld %d %lld",&a,&b,&c,&d);
       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...