제출 #678624

#제출 시각아이디문제언어결과실행 시간메모리
678624guagua0407Railway Trip 2 (JOI22_ho_t4)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define f first #define s second #define all(x) x.begin(),x.end() #define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);     struct node{ int mx=-1, mn=1e5+5; int stmx=-1,stmn=1e5+5; };   const int mxn=1e5+5; pair<int,int> jump[17][mxn]; int n,k,m; node segtree[17][mxn];   void push(int id,int v){ segtree[id][v*2].mn=min(segtree[id][v*2].mn,segtree[id][v].stmn); segtree[id][v*2+1].mn=min(segtree[id][v*2+1].mn,segtree[id][v].stmn); segtree[id][v*2].mx=max(segtree[id][v*2].mx,segtree[id][v].stmx); segtree[id][v*2+1].mx=max(segtree[id][v*2+1].mx,segtree[id][v].stmx); segtree[id][v*2].stmn=min(segtree[id][v*2].stmn,segtree[id][v].stmn); segtree[id][v*2+1].stmn=min(segtree[id][v*2+1].stmn,segtree[id][v].stmn); segtree[id][v*2].stmx=max(segtree[id][v*2].stmx,segtree[id][v].stmx); segtree[id][v*2+1].stmx=max(segtree[id][v*2+1].stmx,segtree[id][v].stmx); segtree[id][v].stmn=1e5+5; segtree[id][v].stmx=-1; }   void init(int id,int l=1,int r=n,int v=1){ segtree[id][v].mn=l,segtree[id][v].mx=r; if(l==r){ return; } int mid=(l+r)/2; init(id,l,mid,v*2); init(id,mid+1,r,v*2+1); }   void update1(int id,int tl,int tr,int val,int l=1,int r=n,int v=1){ if(tl>tr){ return; } if(tl<=l and r<=tr){ segtree[id][v].stmx=max(segtree[id][v].stmx,val); segtree[id][v].mx=max(segtree[id][v].mx,val); return; } push(id,v); int mid=(l+r)/2; update1(id,tl,min(mid,tr),val,l,mid,v*2); update1(id,max(mid+1,tl),tr,val,mid+1,r,v*2+1); segtree[id][v].mx=max(segtree[id][v*2].mx,segtree[id][v*2+1].mx); segtree[id][v].mn=min(segtree[id][v*2].mn,segtree[id][v*2+1].mn); }   void update2(int id,int tl,int tr,int val,int l=1,int r=n,int v=1){ if(tl>tr){ return; } if(tl<=l and r<=tr){ segtree[id][v].stmn=min(segtree[id][v].stmn,val); segtree[id][v].mn=min(segtree[id][v].mn,val); return; } push(id,v); int mid=(l+r)/2; update2(id,tl,min(mid,tr),val,l,mid,v*2); update2(id,max(mid+1,tl),tr,val,mid+1,r,v*2+1); segtree[id][v].mn=min(segtree[id][v*2].mn,segtree[id][v*2+1].mn); segtree[id][v].mx=max(segtree[id][v*2].mx,segtree[id][v*2+1].mx); }   pair<int,int> query(int id,int tl,int tr,int l=1,int r=n,int v=1){ if(tl>tr){ return {n+1,-1}; } if(tl<=l and r<=tr){ return {segtree[id][v].mn,segtree[id][v].mx}; } push(id,v); int mid=(l+r)/2; pair<int,int> x=query(id,tl,min(mid,tr),l,mid,v*2); pair<int,int> y=query(id,max(mid+1,tl),tr,mid+1,r,v*2+1); return {min(x.f,y.f),max(x.s,y.s)}; }   bool ok(int a,int b,int k){ pair<int,int> cur={a,a}; for(int i=0;i<17;i++){ if(k&(1<<i)){ cur=query(i,cur.f,cur.s); } } return (cur.f<=b and b<=cur.s); }   int main() {_ cin>>n>>k; cin>>m; for(int i=0;i<17;i++){ init(i); } for(int i=0;i<m;i++){ int a,b; cin>>a>>b; if(a<b){ int tmp=min(a+k-1,b); update1(0,a,tmp,b); } else{ int tmp=max(a-k+1,b); update2(0,tmp,a,b); } } for(int i=1;i<17;i++){ for(int j=1;j<=n;j++){ update1(i,j,j,query(i-1,query(i-1,j,j).f,query(i-1,j,j).s).s); update2(i,j,j,query(i-1,query(i-1,j,j).f,query(i-1,j,j).s).f); } } int q; cin>>q; for(int i=0;i<q;i++){ int a,b; cin>>a>>b; //binary search ans int l=0,r=n+1; while(l<r){ int mid=(l+r)/2; if(ok(a,b,mid)){ r=mid; } else{ l=mid+1; } } cout<<(l==n+1?-1:l)<<'\n'; } return 0; } //maybe its multiset not set

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp:9:5: error: extended character   is not valid in an identifier
    9 |      
      |     ^
Main.cpp:10:5: error: extended character   is not valid in an identifier
   10 |      
      |     ^
Main.cpp:15:5: error: extended character   is not valid in an identifier
   15 |      
      |     ^
Main.cpp:20:5: error: extended character   is not valid in an identifier
   20 |      
      |     ^
Main.cpp:33:5: error: extended character   is not valid in an identifier
   33 |      
      |     ^
Main.cpp:43:5: error: extended character   is not valid in an identifier
   43 |      
      |     ^
Main.cpp:60:5: error: extended character   is not valid in an identifier
   60 |      
      |     ^
Main.cpp:77:5: error: extended character   is not valid in an identifier
   77 |      
      |     ^
Main.cpp:91:5: error: extended character   is not valid in an identifier
   91 |      
      |     ^
Main.cpp:101:5: error: extended character   is not valid in an identifier
  101 |      
      |     ^
Main.cpp:9:5: error: '\U000000a0' does not name a type
    9 |      
      |     ^
Main.cpp:15:5: error: '\U000000a0' does not name a type
   15 |      
      |     ^
Main.cpp:17:28: error: 'mxn' was not declared in this scope
   17 |     pair<int,int> jump[17][mxn];
      |                            ^~~
Main.cpp:19:5: error: 'node' does not name a type
   19 |     node segtree[17][mxn];
      |     ^~~~
Main.cpp:20:5: error: '\U000000a0' does not name a type
   20 |      
      |     ^
Main.cpp:33:5: error: '\U000000a0' does not name a type
   33 |      
      |     ^
Main.cpp:43:5: error: '\U000000a0' does not name a type
   43 |      
      |     ^
Main.cpp:60:5: error: '\U000000a0' does not name a type
   60 |      
      |     ^
Main.cpp:77:5: error: '\U000000a0' does not name a type
   77 |      
      |     ^
Main.cpp:91:5: error: '\U000000a0' does not name a type
   91 |      
      |     ^
Main.cpp:101:5: error: '\U000000a0' does not name a type
  101 |      
      |     ^